C++ 注册型插件移植为免注册插件

外挂开发 大漠插件注册 在开发外挂中,其实有很多厉害的插件可以供我们使用,不再自己再去额外的写复杂的代码,类似的插件很多,比如:天使插件、DD、大漠等,各个插件都有比较擅长的功能,有些小众的插件更是给力,因为可以过NP。 1.准备大漠的Dll动态链接库(里面包含了类文件) 名字为:dm(mat).dll,把dm(mat).dll复制到工程的代码目录和运行目录Debug  2.添加Lib类 方法:对着解决方案名... 阅读详情

从Inventor 2012开始支持免注册插件,我在今年初做了一个专门的视频。

前个月我在全球博客特别对C++注册型插件的移植注意事项做了总结。http://adndevblog.typepad.com/manufacturing/2012/10/notes-for-migrating-c-add-in-to-registry-free.html

假定你有C++注册型插件,移植将包含以下内容: 

1. 移除所有和注册相关的文件,例如 *.rgs。但需要注意,如果你的插件使用到了其它注册型的组件,则需要考虑预先注册好那些组件。我们这里所说的注册相关是Inventor插件本身。

 image

2. 去除注册相关的代码,尤其是

   - DllRegistryServer
   - DllUnregistryServer 

image

 

image

image

3. 移除编译后处理中插件注册的内容。

image

4. 确保工程设置中 “embed manifest” 是选上的。

image

5. 有些机器上,可能还需要禁止 UAC 

image

6. 添加对应的清单文件(manifest)和 *.addin文件。这里我提供了这两个文件的模板,修改其文件名为你的插件名,其中的部分内容例如GUID调整一下。

Download CPPSampleTest.X 
Download Autodesk.CPPSampleTest.Inventor    

image

7. 工程中加入清单文件

   image

 

8. 编辑清单文件 注意:C++的清单文件格式和.NET的插件不太一样. 除了GUID,还有几处信息是你的插件特有的。

- name: 工程名 
- file name: 编译好的dll文件名 

image

- clsid: 这可以在*.idl 文件中找到

image

- tlbid: 这也可在 *.idl 文件中找到

image

 修改后,是这个样子:

image 

9. 编辑 *.addin文件 

-ClassId 
-ClientId 
-DisplayName 
-Assembly:  dll的绝对或相对路径 
- 其它你需要的设置

image

 

10. 编译工程看看有无错误。接着拷贝*.addin文件到指定的文件夹,让Inventor能知道加载。本文我们放在%AppData%\Autodesk\ApplicationPlugins. 也可在编译后处理中作这个事情。 

image

 

11. 启动Inventor,看看插件是否加载正常。

image

12. 特别需要注意的: 

  1) 再次提醒,C++插件和.NET插件的清单文件格式不太一样。 格式不对会造成插件无法加载。
  2) Inventor 2013的插件模板创建的是免注册插件。其中有一步可规定RDS名,如果设置了,dll文件名将含有RDS名。但自动产生的清单文件里却忽略了RDS名,因此请注意将二者保持一致。

image

3) 缺省情况下,插件向导用IDispatch interfaces创建插件. 但这样的免注册插件无法在XP(无论32位还是64位)上加载正常。另外,如果调试,也会抛出异常。解决办法是用Vtable interfaces创建插件. 所以,如果你原有的插件用的是IDispatch interfaces, 需要转换为Vtable interfaces。假设不在XP上使用,可不做转换。 

image


Sublime Text 3126 Linux x86-64 免注册免配置版(含完整插件支持) Sublime Text 3126 是 Sublime HQ 发布的经典稳定版本,构建于轻量级 C++ 内核之上,采用 OpenGL 加速渲染与异步 UI 架构,确保在低资源消耗下实现毫秒级响应。该版本定格于功能完备性与系统兼容性的平衡点,广泛适用于 Linux x86-64 环境下的开发任务。其设计哲学强调“最小干扰、最大效率”,通过极简界面和键盘驱动操作范式,减少鼠标依赖,提升编码节奏。对于某些小众或内部 DSL(领域专用语言),官方并未提供默认语法支持,此时需要手动创建自定义文件。 阅读详情

相关推荐

vscode c/c++扩展插件

vscode c/c++扩展插件,支持跳转,补全,dbg

C++ 插件机制的实现原理、过程、及使用

什么是插件机制 插件是你想开发一个成功的动态系统所需要的一种方式。基于插件的扩展性是当前扩展,进化一个系统的最具有实践意义的安全方式。插件使得第三方开发人员可以为系统做增值工作,也可以使其他开发人员增加新的功能而不破坏现有的核心功能。插件能够促进将关注点分开,保证隐藏实现细节,将测试独立开来,并最具有实践意义。 比如强大的Eclipse的平台实际上就是一个所有功能都由插件提供的骨架。Eclipse IDE自身(包括UI和Java开发环境)仅仅是一系列挂在核心框架上的插件。 插件机制仍需要考虑的一些问题

猫哥 的沉淀、积累、总结。天天学习,好好向上...c/c++,嵌入式 linux,Android,HarmonyOS,AIOT) 1万+

免注册调用任何com组件.rar

免注册调用任何com组件 vs2013编写,喜欢老铁来个赞,哈哈。

VS中添加LIb库及头文件的步骤

在VS工程中,添加c/c++工程中外部头文件及库的基本步骤:     1、添加工程的头文件目录:工程---属性---配置属性---c/c++---常规---附加包含目录:加上头文件存放目录。     2、添加文件引用的lib静态库路径:工程---属性---配置属性---链接器---常规---附加库目录:加上lib文件存放目录。         然后添加工程引用的lib文件名:工程---属性---配...

weixin_34013044的博客 683

砼课程设计计算书模板

砼课程设计计算书模板 福建省工程学院成教院 09级大专房建专业班 学号: 姓名: 单向肋形板的设计(按塑性内力重分布计算) 1.1板的计算简图,取1m宽为计算单元。因为墙顶设QL,所以各跨的计算跨度均相同,l0= ln=1900mm=1.9m。ln为板的净跨。 A B C C B A 1 2 3 2 1 1.2板上的荷载计算 取1m宽板带为计算: 板面层:水泥砂浆面层20mm厚,每平方米重0.02*1*20=0.4KN/m。 板自重: 板厚100mm, 每平方米重0.1*25*1=2.5 KN/m。 板底粉刷:15mm厚石灰砂浆抹底 每平方米重0.015*1*17=0.26KN/m。 恒载:gk=∑3.16 KN/m。 活载:qk =1*4.0=4.0 KN/m。 设计总值:1.2 gk+1.3 qk=1.2*3.16+1.3*4.0=8.99 KN/m。 1.3内力计算 用塑性内力重分布理论计算,则有α系数如下: A B —1/11 C —1/14 C—1/14 B —1/11 A 1/11 1/16 1/16 1/16 1/11 则M=αm(1.2 gk+1.3 qk) fc=14.3MPa (砼为C30) M1=(1/11)*8.99*1.822=2.71KN-m; MB=-(1/11)*8.99*1.822=-2.71KN-m h0=100-20=80mm

VS2010免注册调用大漠插件

VS2010免注册调用大漠插件,真正面注册表注册调用大漠DLL dm.dll

C/C++ --- 动态注册类

背景需要根据配置文件中的插件名字获取插件实例,从而需要维护<插件名字,插件实例>的映射关系。 当有新插件加入项目时,每次都需要在该映射关系中插入一条信息。为了避免避免此操作,通过定义宏 自动完成 新插件的注册功能。设计思想每个插件在全局域中定义一个注册类,在该注册类的构造函数中将<插件名字,插件实例>插入全局的map中, 在全局域定义该注册类的一个实例,从而调用构造函数,在map中插入该

Nireus的博客 5789

VC++免注册破解调用大漠5.1423示例工程.rar

VC++免注册破解调用大漠5.1423示例工程 VC++免注册破解调用大漠5.1423示例工程

C++读取注册表

昨天受一朋友要求,帮忙写一个用C++读取注册表的程序。这个朋友是搞Java的,肯定不知道C++怎么写啦!他的需求也奇怪:用js调用一个浏览器插件,通过插件获取注册表中指定键的值,插件肯定是用C++写了。于是乎我就在网上查了一下“C++读取注册表”,一搜一大片但都是一些初学C++的人写的,多数不能用,而且那写的程序真是无力吐槽……一怒之下我就自己花一个小时写了一个,费话不说了,直接上代码:C++读取注

阳光日志 1万+

祥云模块1.8(集成大漠3.1254,天使3.007,支持免注册调用与大漠多线程)

祥云模块1.8(集成大漠3.1254,天使3.007,支持免注册调用与大漠多线程) 增加了调用免注同的例子 .版本 2 .支持库 spec .程序集 窗口程序集1 .子程序 __启动窗口_创建完毕 .局部变量 大漠, 大漠中文版 大漠.免注册创建对象 () ' 可空,默认为运行目录下的dm.dll 如果是运行目录下"插件"目录下,则写入"\插件"就行了 调试输出 (大漠.取插件版本 ())

app编写需要哪种语言

原生App开发:优选Swift(iOS)和Kotlin(Android)。跨平台App开发:优选Flutter(Dart)和React Native(JavaScript)。游戏App开发:优选Unity(C#)和Unreal Engine(C++)。低代码工具:适合简单、快速的App制作。

fanying_98的博客 2070

Qt环境下免注册调用大漠插件DLL的完整指南(含代码示例)

本文详细介绍了在Qt开发环境中,如何绕过系统注册表,通过动态加载DLL和调用COM接口的方式,实现对大漠插件的免注册调用。文章提供了从原理分析、头文件生成到完整代码示例的完整指南,特别适合追求绿色部署、避免版本冲突的开发者。

nft7creator的博客 177

adb详细教程(四)-使用adb启动应用、关闭应用、清空应用数据、获取设备已安装应用列表

adb对于安卓移动端来说,是个非常重要的调试工具。通过ADB可以操作、管理设备上的应用。

公众号|软件测试老吴 3万+

C/C++三方库移植到HarmonyOS平台详细教程

本文介绍了C/C++三方库移植到HarmonyOS平台的两种主要方法:推荐的AKI方式和Node-API方式。AKI方式具有开发效率高、学习成本低的优势,通过极简语法糖实现ArkTS与C/C++的无障碍调用;Node-API方式则提供更精细的控制但复杂度较高。文章详细说明了AKI方式的移植步骤,包括环境准备、包装器创建、CMake配置和ArkTS调用示例,并对比了两种方式的适用场景。移植C/C++库可提升性能、复用功能并丰富HarmonyOS生态。

猫哥 的沉淀、积累、总结。天天学习,好好向上...c/c++,嵌入式 linux,Android,HarmonyOS,AIOT) 1918

怎么定位K8s容器中运行的JAVA程序OOM异常(一)

一.前置环境 1. 运行在k8s集群上的Pod服务(Java程序) 2. MAT分析工具 二.利用Jmap工具导出Heap Dump 1.执行命令进入pod容器 kubectl exec -itn {namespace} {pod}} sh 2.利用jmap生成java程序的Dump文件 jps | grep {jar} ./jmap -dump:live,format=b,file=haep.hprof 8 3.利用k8s命令导出Dump文件到本地 kubectl cp -n

计算科学 3013

西门子博图v16安装密钥提示报错:CryptAcquireContext MS_DEF_PROV Error of containger opening...如何解决?

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值。

**My Coding Family** 3300

C++中插件使用举例

插件并不是在构建时链接的,而是在运行时发现并加载的。因此,用户可以利用你定义好的插件API来编写自己的插件。这样他们就能以指定方式扩展API的功能。插件库是一个动态库,它可以独立于核心API编译,在运行时根据需要显示加载。不过插件也可以使用静态库,比如在嵌入式系统中,所有插件都是在编译时静态链接到应用程序中的。 你总是可以引入自己的插件文件扩展名。例如,Adobe Illustrator使用的插...

网络资源是无限的 4062

YOLOv11架构革新:华为VanillaNet与BiFPN深度融合的突破性改进实战指南

购买即可解锁300+YOLO优化文章,并且还有海量深度学习复现项目,价格仅需两杯奶茶的钱,别人有的本专栏也有!

LXY_LOVE36的博客 136

C/C++:构建你自己的插件框架

本文译自Gigi Sayfan在DDJ上的专栏文章。Gigi Sayfan是北加州的一个程序员,email: gigi@gmail.com. 本文是一系列讨论架构、开发和部署C/C++跨平台插件框架的文章的第一篇。第一部分探索了一下现状,调查了许多现有的插件/组件库,深入研究了二进制兼容问题,并展现了一些该方案必要的一些属性。 后续的文章用一个例子展示了可用于Window、Linux、Mac

把握自己。 4565

华为OD机试 新系统真题 【数字系统转换器】

华为OD机试 新系统真题【数字系统转换器】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【数字系统转换器】多语言题解。

qq_45776114的博客 542

卷积层 (Convolutional Layer) 原理与代码实例讲解

卷积层 (Convolutional Layer) 原理与代码实例讲解 关键词:卷积层,卷积操作,滤波器,特征提取,神经网络 1. 背景介绍 卷积神经网络 (Convolutional N

欢迎来到我的优快云空间!这里聚焦AI大模型应用实战,分享前沿技术、实战案例与开发经验。 769

C++插件架构浅谈与初步实现

转自:http://blog.youkuaiyun.com/zhouxuguang236/article/details/29365261 一、插件架构初步介绍     想到写本博客,也没想到更好的名字,目前就先命这个名吧。说到插件架构,或许大部分IT从业者都听过或者某些牛人也自己实现过稳定高效的插件框架。目前有很多软件以及库都是基于插件架构,例如PS、我所在行业的GIS软件如Arcgis、Q

ACM Dream 3678

基于STM32L4XX、HAL库的ICM-42607-P姿态传感器驱动程序设计

/ 转换为dps(±1000dps量程)float accel_x = sensor_data.accel_x * (8.0f / 32768.0f);// 转换为g值(±8g量程)#define ICM42607_I2C_ADDR 0x68 << 1 // I2C地址(SA0=0)= 0x40) { // ICM-42607的WHO_AM_I值为0x40。// 读取传感器数据。

zhusl6688的博客 835
上一篇: 工程图之间的标题栏复制
下一篇: 不需要Inventor操作iProperties
autodeskinventorapi
博客等级 码龄14年 313粉丝 164原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值