环境:Win7 x64,NX12
内容:NX二次开发的dll, 用户电脑上不能使用
原因:这里大致总结一下图片问题的可能原因:
1.检查客户电脑环境变量,NX版本,release,是否签名,权限问题
2.功能中用到产生的临时文件路径是否合理,是否被杀毒软件过滤
3.检查报错功能调用了那些库,与正确的功能找不同
4.使用depends 工具查看报错dll依赖了那些dll
5.报错dll的名字是否重复,如果客户先用了其他外挂,那恰好有两个文件同名,后者会报错
6.项目放置位置包含中文路径,导致Dll查找不到
附加:
1.匿名命名空间内有类似 string path = getUGenv() 这样的函数也有可能报错,这个问题之前遇到过在自己的电脑正常,在客户电脑上就不行,原因是电脑环境变量NX安装路径不同。
2. 编写了一个测试项目,里面包含各种代码文件,包括自己添加的公共库文件,卸载方式是立即卸载,但采用附加到进程中的方式调试,重新编译失败,提示DLL一直被占用,原因是公共库源码文件新增的几个函数无法识别:error lnk2019: 无法解析的外部符号,最后也没找到办法,只好将公共库文件单独摘成一个项目,然后单独调用就可以了。