UG开发实战003:工程配置及未加载图像异常处理
1、加载外部依赖要实现对UG的二次开发,首先我们就必要要用到UG/Open提供给我们的外部依赖文件(.h头文件),点击项目右键->属性->->配置属性->C/C++->常规->附加包含目录,将其改为UG/Open的头文件存放目录。$(UGII_BASE_DIR)\\ugopen,$(UGII_BASE_DIR)是在安装UG时候配置的环境变量,指向了UG的安装目录。
2、加载lib文件库头文件只是对功能函数接口的对外申明,并不具备实际的函数实体,它是程序调用的桥梁,要实现头文件中的函数就必要引入相应的lib文件库。这样用户只需要按照头文件中的接口声明来调用库功能,而不必关心接口怎么实现的。在编译器会从库中提取相应的代码,以此来达到保护源码不外漏的作用。在项目右键->属性->配置属性->链接器->常规->附加库目录中添加$(UGII_BASE_DIR)\\ugopen,在项目属性->配置属性->链接器->输入->附加依赖项中添加lib文件名。
3、项目调试为了调试项目方便,我们可以在项目右键->属性->配置属性->调试,在调试页面的“命令”一栏中填入要调试的UG可执行文件的路劐孕瞬腊径,我安装在D:\Program Files (x86)\Siemens\NX 9.0\UGII\\ugraf.exe,然后将“附加”选项改成“是”。 先用UG打开文件,再在Visual Studio 2015中需要调试的地方加断点并按F5开始调试,然后在UG中按Ctrl+U加载我们项目刚刚生成的dll文件,遇到断点就会自动跳到Visual Studio 2015中,接着就可以调试了。
4、错误:未能加载图像前天遇到这个问题,在自己电脑上运行的好好的,拿到现场去使用时候却出现了未能加载图像的错误提示。我电脑装的是UG8.5版本,现场用的是UG9.0版本。按理来说高版本一般都兼容低版本文件的,插件自然也应该支持的。所以我觉得应该是编译环境或者是配置上需要修改,这里我的解决方法是通过修改右键->属性->配置属性->C/C++->代码生成->运行库,将“多线程调试DLL(/MDd)”改成“ 多线程(/MT)”即可。
5、错误:LNK1561 必须定义入口点在重新编译代码的时候遇到“错误:LNK1561 必须定义入口点”提示,解决方法是通过修改右键->属性->配置属性->常规->配置类型,将应用程序(.exe)改成动态链接库(.dll)即可。
6、lib文件明细:libufun.liblibugopenint.liblibnxopenuicpp.liblibufun_cae.libli芟鲠阻缒bnxopencpp.liblibnxopencpp_annotations.liblibnxopencpp_assemblies.liblibnxopencpp_bodydes.liblibnxopencpp_cae.liblibnxopencpp_cam.liblibnxopencpp_die.liblibnxopencpp_display.liblibnxopencpp_drafting.liblibnxopencpp_drawings.liblibnxopencpp_facet.liblibnxopencpp_features.liblibnxopencpp_fields.liblibnxopencpp_formboard.liblibnxopencpp_gateway.liblibnxopencpp_geometricanalysis.liblibnxopencpp_geometricutilities.liblibnxopencpp_issue.liblibnxopencpp_layer.liblibnxopencpp_layout2d.liblibnxopencpp_mechatronics.liblibnxopencpp_modldirect.liblibnxopencpp_motion.liblibnxopencpp_optimization.liblibnxopencpp_options.liblibnxopencpp_partfamily.liblibnxopencpp_pdm.liblibnxopencpp_physmat.liblibnxopencpp_positioning.liblibnxopencpp_preferences.liblibnxopencpp_routing.liblibnxopencpp_shapesearch.liblibnxopencpp_sheetmetal.liblibnxopencpp_sim.liblibnxopencpp_tooling.liblibnxopencpp_userdefinedobjects.liblibnxopencpp_validate.liblibnxopencpp_visualreporting.liblibnxopencpp_weld.liblibugopenint_cae.liblibopenpp.liblibopenintpp.liblibvmathpp.lib