3年前,我在学习NXOpen二次开发的时候,已经注意到开发出来的文件需要进行“签名”才能在正版上使用,但是当时水平很烂(当然现在的水平也怎么样),所以一直没有深究,都是用宏代替。
这两年,因为工作的需要,不做二次开发的话很多重复性的工作太浪费时间,而且现在的工作节奏越来越快,还是需要点手段提高工作效率。
最近开发成功的辅助工具dll,在试用版上可以运行,但是一放到正版就没办法了,提示“无法加载图像”。所以还是想想办法签名吧。
但是按照网上的签名教程,尝试了几十次,换了几台电脑,反复安装NX8.5,最终都以失败告终。所有的失败信息无一例外是:
Error signing application, XXX.dll.
Application has not been compiled with NXSigningResource.cpp.
连续几天,头脑里装的都是这个问题,得不到答案,请教二次开发群里的人,无一人回答;而且在网络上搜索,千篇一律的答复都是签名的步骤,全部不起作用。顺带提一句:某度的搜索真的是滤掉了太多内容……
直至今天,心里还是放不下,趁着小朋友被带出门玩耍去了,不死心地换上其它搜索引擎搜索,综合起来分析,似乎有了答案。
第一、出现了上述报错,是因为二次开发所用的VS版本不匹配,而网上几乎就没有这样的提醒,因为其实使用不同版本的VS配置好后能正常开发!
这是在湾湾的一篇文章找到的答案:
第二、NX二次开发对应的VS版本如下:
NX版本 | 对应的VS版本 |
---|---|
NX1847-NX1872 | Visual Studio 2017 Build 19.10.25017 |
NX12 | Visual Studio 2015 Build 19.00.23026 |
NX11 | Visual Studio 2013 Build 18.00.21005.1 |
NX10 | Visual Studio 2012 Update 1 |
NX9.0 | Visual Studio 2012 Update 1** |
NX8.5 | Visual Studio 2010 SP1(实测2010版本一样可以) |
NX8.0 | Visual Studio 2010 |
于是,果断卸载VS2015社区版,重新安装VS2010,一系列配置完后,新建项目,编译生成DLL,然后signcpp,最终冒出了:
Checking for the presence of c\_p\_p\_author license.\
Signing files...\
Application C:\NXProject\sign\XXX.dll has been signed.
妈妈说开饭了!