多语言展示
当前在线:935今日阅读:86今日分享:14

UG开发实战003:工程配置及未加载图像异常处理

前面我们完成了UG二次开发环境的搭建,除了用UG提供的模板来创建项目,VS本身也是可以创建项目的,只是很多配置需要我们手动来完成,而UG/Open的好处就是这些都帮我们处理好了。不过作为开发我们还是有必要会自行配置的,不然拿到别人自行创建的项目你都不知道如何下手了。
工具/原料

UG

方法/步骤
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.lib libugopenint.lib libnxopenuicpp.lib libufun_cae.lib libnxopencpp.lib libnxopencpp_annotations.lib libnxopencpp_assemblies.lib libnxopencpp_bodydes.lib libnxopencpp_cae.lib libnxopencpp_cam.lib libnxopencpp_die.lib libnxopencpp_display.lib libnxopencpp_drafting.lib libnxopencpp_drawings.lib libnxopencpp_facet.lib libnxopencpp_features.lib libnxopencpp_fields.lib libnxopencpp_formboard.lib libnxopencpp_gateway.lib libnxopencpp_geometricanalysis.lib libnxopencpp_geometricutilities.lib libnxopencpp_issue.lib libnxopencpp_layer.lib libnxopencpp_layout2d.lib libnxopencpp_mechatronics.lib libnxopencpp_modldirect.lib libnxopencpp_motion.lib libnxopencpp_optimization.lib libnxopencpp_options.lib libnxopencpp_partfamily.lib libnxopencpp_pdm.lib libnxopencpp_physmat.lib libnxopencpp_positioning.lib libnxopencpp_preferences.lib libnxopencpp_routing.lib libnxopencpp_shapesearch.lib libnxopencpp_sheetmetal.lib libnxopencpp_sim.lib libnxopencpp_tooling.lib libnxopencpp_userdefinedobjects.lib libnxopencpp_validate.lib libnxopencpp_visualreporting.lib libnxopencpp_weld.lib libugopenint_cae.lib libopenpp.lib libopenintpp.lib libvmathpp.lib

推荐信息