在尝试UG的external模式时,遇到这个问题
具体情况就是:
对
$(UGII_BASE_DIR)\ugopen
libufun.lib libugopenint.lib
都做了正确的设置
而且也完全编译成功,但是这个编译成功的exe
运行时却弹出警告窗口,提示:“没有找到libufun.dll,因此这个应用程序未能启动。重新安装应用程序可能会修复此问题”
这是为什么呢?
在外部模式下,程序之所以不能运行,是因为缺dll 支持。所以光加了libufun.lib libugopenint.lib没有用,WINDOWS中,lib只是对dll中的接口函数的声明,像目录一样
外部开发,应该只能在UGII下可以运行,要么就找到libufun.dll和libugopenint.dll所引用的每一个库,也就是说把整个UGII中的文件夹打个包到exe所在的debug目录下。
目前了解到的解决办法是:
1)直接将生成的exe文件拷贝到UGII目录下,双击运行,试过了,可以正常运行;
2)将整个UGII中的文件夹打个包到exe目录(没试过)
这里有很好的讨论结果
http://bbs.icax.org/viewthread.php?tid=145192&extra=&page=1
----------------------------------------------------------------------------------------
update:2011-3-28 17:02:22
其实是少设置了环境变量的缘故
我的电脑---右键属性---高级---环境变量---系统变量---Path
添加UGII的路径,比如:D:\Program Files\UGS\NX 6.0\UGII
设置之后,生成的exe便可成功运行,而不会再提示找不到libufun.dll
之前上面所述其实道理一样,只是没有从本质上解决问题,通过设置环境变量之后便可不用将生成的exe文件复制到UGII目录下了。
----------------------------------------------------------------------------------------
update:2012-3-12 16:29:39
设置完Path后需要重启电脑。