找回密码
 立即注册

QQ登录

只需一步,快速开始

微信扫码登录

搜索
查看: 1140|回复: 6

[求助] NX开发内部插件时怎么实现对多个版本的支持?

[复制链接]

13

主题

42

回帖

971

积分

五级士官

积分
971
发表于 2024-1-22 15:46:09 | 显示全部楼层 |阅读模式
如我要开发一个插件,是在2306的环境下开发的,这样一些函数就无法支持更低版本,如果使用更低版本的函数开发可能会遇到不能兼容高版本的问题,有没有什么办法可以让dll兼容更多的版本,我的想法是使用不同版本的开发环境进行编译,然后在执行时根据当前运行的NX版本决定使用哪个dll.只有思路不知道具体该怎么实现,有没有大佬可以给支个招

14

主题

257

回帖

8511

积分

贵宾

积分
8511

论坛技术员论坛贡献

发表于 2024-1-22 16:49:28 | 显示全部楼层
       如果你期望每个版本编译一个dll,让NX启动时,自动分析应该调用哪一个dll,这个方法很简单的。在NX启动的时候,获取NX版本,然后动 态调用,你开发的dll,具体哪一个,就分NX本版本就可以了。
       这也是目前市面上,其他NX二次开发工具,主流的做法。

评分

参与人数 1G币 +10 收起 理由
296567996 + 10 感谢您的帮助!!谢谢!

查看全部评分

14

主题

257

回帖

8511

积分

贵宾

积分
8511

论坛技术员论坛贡献

发表于 2024-1-22 16:45:54 | 显示全部楼层
       要实现这样的技术,原理很简单的,就是不要用NX提供的静态库做二次开发,这样就能保证这个dll在多个版本运行(当前提提是每个版本对应的API还存在,如果某一个版本不存在了,也还是要维护的)。
       虽然这个原理很简单,但目前市面上,基本上没有几个人这样去开发,如果只开发一个简单的功能,这样玩是很容易的。但是,如果当你想开发一整套功能,都用这种技术,那就需要大量的验证,和技术维护,甚至还要对NX的封装,内部机制有一定的了解。
       目前市面上,就模圣开发的,模圣软件整套功能,用的这项技术。

2

主题

274

回帖

1万

积分

中校

积分
11112
发表于 2024-1-22 21:17:07 | 显示全部楼层
我个人不是很喜欢编译成DLL,一点小改动就得重新编译。所以更倾向VB和Python

13

主题

42

回帖

971

积分

五级士官

积分
971
 楼主| 发表于 2024-1-24 08:43:34 | 显示全部楼层
Jefft* 发表于 2024-1-22 16:49
如果你期望每个版本编译一个dll,让NX启动时,自动分析应该调用哪一个dll,这个方法很简单的。在NX启 ...

函数获取到NX版本,但是要执行函数就要调用dll,这时就会出现版本不兼容问题了,我不太理解是怎么实现在调用dll之前就可以获取到NX版本版并决定调用哪个dll的,您还能帮我解答一下吗?谢谢!

14

主题

257

回帖

8511

积分

贵宾

积分
8511

论坛技术员论坛贡献

发表于 2024-1-24 09:45:02 | 显示全部楼层
296567996 发表于 2024-1-24 08:43
函数获取到NX版本,但是要执行函数就要调用dll,这时就会出现版本不兼容问题了,我不太理解是怎么实现在调用 ...

       是不兼容,还是不能用?你根本就没有描述清楚,如果是不兼容,从NX1926开始,只是会弹一个警告,意思是当前编辑的dll没有在对应的VS中进行,这个警告通过NX用户默认设置可以关掉,不影响功能的使用。
       如果是完全不能启动,使用dll中的功能,那是自己写的代码有问题。解决方法很多,市面上主流的解决方法是,建VS项目的时候,只引用ufun几个库就可以了,不要引用NXOpen中的库,然后这个dll仅是获取版本和启动对应DLL的功能。
       UFUN的函数,官方基本不维护了,所以它改动的可能性低(除了管道模块,后面的版本也有很多改动)。简单点理解,如果一个dll中的功能,没有block UI也没有引用NXOpen的库,那么这个dll,99.99%是可以版本通用的,所以用这个dll来获取版本,分别调用不同的dll就可以了。
       上面只是常规手段,还有一种就是完全不用静态库,也能启动起来的。

3

主题

8

回帖

930

积分

五级士官

积分
930
发表于 2024-2-28 18:38:24 | 显示全部楼层
膜拜大佬
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

咨询QQ:1359218528|发帖须知!|Archiver|手机版|小黑屋|UG爱好者论坛 ( 京ICP备10217105号-2 )

GMT+8, 2025-1-22 18:44

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表