【NX二次开发】批量数字签名的方法,解决自己电脑编译的dll在用户正版NX无法使用的问题

在UG5.0开始,所有开发的DLL都要“签名”后才能被客户端上正版的NX调用。

1. 如果是基于c++开发的dll,使用如下方法可以顺利签名成功(这里借用网上现有的文字和图片)

1.1.在cpp文件中需要添加头文件

#include <NXSigningResource.cpp>

 

 2.1.启动NX Tools的DOS命令行,进入NX安装目录的UGOPEN下,运行nxsign xxx.dll,其中的xxx.dll应该包含全路径,如下图。这里的nxsign是UGOPEN目录下的nxsign.exe软件,为c++的dll签名的软件。如果签名成功,提示信息也如下。注意nxsign.exe只能用在NX8.0之前的版本,在NX8.5之后用的是signcpp.exe,因此命令行需要写成 signcpp xxx.dll

 其实不用这么麻烦,直接找到signcpp.exe文件,将多个dll拖到signcpp.exe上就可以签名了:

缺点是也不知道签名成功了没有,有没有报错啊等等,为了解决这个问题,还得靠自己勤劳的双手,顺手写个脚本。

批处理源码(将源码拷到文本,扩展名改为.bat,按照下面这个动画使用,其他NX版本照葫芦画瓢改改也能用):

@echo off   
title 正版批量签名工具 by 王牌飞行员_里海 20201124
if "%1"=="" (
   echo 请用拖文件形式运行! 
   ping 127.1>nul&exit/b) 
   
echo 正在签名...
for %%i in (%*)do (
echo.
echo.
    echo 签名%%i :
    "%UGII_BASE_DIR%\NXBIN\signcpp.exe" %%i
     )  
echo.
echo.
echo.
pause

    ::NX8.5 "C:\Program Files\Siemens\NX 8.5\UGOPEN\signcpp.exe" %%i
    ::NX11.0 "C:\Program Files\Siemens\NX 11.0\UGOPEN\signcpp.exe" %%i
    ::NX12.0 "%UGII_BASE_DIR%\NXBIN\signcpp.exe" %%i
    ::NX12.0 "D:\Program Files\Siemens\NX 12.0\NXBIN\signcpp.exe" %%i
    ::NX10.0 "D:\Program Files\Siemens\NX 10.0\UGOPEN\signcpp.exe" %%i

效果:

舒服~~~~~~

 

 

部分参考:https://www.ugapi.com/thread-5896.html

posted @ 2020-11-24 10:01  王牌飞行员_里海  阅读(1554)  评论(5编辑  收藏  举报