【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 @   王牌飞行员_里海  阅读(1640)  评论(5编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示