在自己的电脑上运行得好好的插件,部署到客户的电脑上出现未注册的命令错误或者“未能加载图像”的错误
1.首先检查插件的所有依赖是否齐全,确保齐全
2.这个问题在网络上搜索一番,大多数都是不知所云,后来看到这一篇文章【UG二次开发加载dll,ufusr出错,Failed to load image_ufusr无法加载图像ug怎么解决-CSDN博客】,按照里面的方案对插件dll进行签名,再试一次果然OK。这里在明确一下步骤:
A.把文件“{NX的安装目录}\UGOPEN\NXSigningResource.cpp”拷贝到项目目录下,并在项目中引入这个文件:
B.重新编译插件工程
C.打开“NX 命令提示符”
D.输入命令:
signcpp "插件dll的全路径"
!!执行后这个dll就签名了,如果有多个nx dll插件(只有调用ug/nx api的dll才需要)则需要都进行签名。
以上操作都是在开发电脑上做的。做了一个实验:把生成的DLL复制一份,然后使用signcpp签名其中一个,然后使用十六进制对比两个dll,发现内容居然是完全一样的?WTF?不管了,把生成的插件DLL重新打包到客户电脑上,运行OK。WTF again!!!