UG二次开发加载dll,ufusr出错,Failed to load image

解决UG二次开发中DLL无法在正版软件上运行的问题,通过加入特定资源文件并使用nxsign或signcpp命令进行签名。

使用VC6.0和VS2010做UG的二次开发,生成的dll在本地电脑上运行没有任何问题,复制到另外一台电脑上运行出现了错误,无法加载图像,ufusr报错。排除UG版本问题,排除32位/64位操作系统问题,排除Release和debug问题,项目属性运行库中MT,MTd,MD,MDd也试过,错误一直存在。



折腾了好些天,终于发现原来dll在D版的UG中可以运行,但是想要在正版的UG中运行,必须将dll先”签名",否则就会出现上面的错误!认识好问题等于解决好问题的一半,原来早有人也遇到过相同的问题,借用网络上的解决方案:

1、在代码中加入#include <NXSigningResource.cpp>,重新生成dll。

2、启动NX tools的Dos命令,进入安装目录UGOPEN 下,运行nxsign XXX.dll,XXX.dll需包含全路径,(此处注意了,我用的是NX8.5,nxsign命令输入后提示nxsign不是内部或外部命令,也不是可运行的程序!奇了怪了,进入UGOPEN文件夹下,搜索*.exe,结果中并无nxsign.exe,但出现了signcpp.exe,果断运行 signcpp XXX.dll,成功了!)

解决了如鲠在咽的问题,不吐不快。


评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值