1、creo20+VS采用protoolkit二次开发环境配置64位win7very good onecreo2.0+VS2010采用protoolkit二次开发环境配置(64位win7)在网上找了很多资料,也遇到过很多问题。本文的配置过程主要参考了网上的这篇文章,地址如下:首先记录正确的环境配置过程,然后用一个实例程序验证,最后说明遇到的问题和注意事项。电脑win7 64位系统,安装VS2010,打了SP1补丁,使用开发VC+配置过程如下:一、新建MFC DLL文件新建项目,选择MFC DLL,如图所示DLL类型选择“使用共享 MFC DLL 的规则 DLL(D)”二、开发环境配置1、包含目录和
2、库目录的设置(“D:Creo 2.0”是本机Creo的安装目录)1)包含目录的添加操作:项目属性配置属性VC+目录,选择包含目录,添加:D:Creo 2.0Common FilesM010prodevelopincludesD:Creo 2.0Common FilesM010protoolkitprotk_applsincludesD:Creo 2.0Common FilesM010protoolkitincludes这三个目录都没有问题2)库目录的添加,与包含目录的添加类似,添加:D:Creo 2.0Common FilesM010prodevelopx86e_win64objD:Creo
3、2.0Common FilesM010protoolkitx86e_win64obj64位系统需要添加的是X86e_win64这个目录下的obj目录,和32位系统差别就在这里3、进行工程属性配置1)“项目”属性配置属性常规,点击“配置管理器”,配置为Debug,平台为x64,如图这一步也很关键,如果不改过来的,成功的可能性很小2) 字符集选择“使用多字节字符集”3) “预处理器”中对“预处理器定义”进行编辑,增加PRO_USE_VAR_ARGS,如下图4) “代码生成”的“运行库”选择“多线程调试DLL(/MDd),这个是默认的5)语言,也是默认的6)“连接器”“输入”,编辑“附加依赖库”,添
4、加protk_dllmd.libnetapi32.libwsock32.libpsapi.libws2_32.libmpr.lib如下图7)“忽略特定默认库”中添加“msvcrt.lib”,此处不截图。三、添加实例程序双击项目源文件中的“Hello.cpp”1、添加头文件#include ProMenubar.h#include ProMenu.h #include ProUtil.h#include #pragma comment(lib,netapi32)如图2、尾部添加程序static uiCmdAccessState AccessDefault(uiCmdAccessMode acce
5、ss_mode) return(ACCESS_AVAILABLE);void Test1() AfxMessageBox(_T(轴); void Test2() AfxMessageBox(_T(齿轮); extern C int user_initialize() ProError status; ProFileName MsgFile;ProStringToWstring(MsgFile,IconMessage.txt); /注意此处的IconMessage与后面的text文件夹下的IconMessage.txt文件名必须相同uiCmdCmdId PushButton1_cmd_id,Pu
6、shButton2_cmd_id;status=ProMenubarMenuAdd(MainMenu,Function,Help,PRO_B_TRUE,MsgFile); ProCmdActionAdd(PushButton1_Act,(uiCmdCmdActFn)Test1,12,AccessDefault,PRO_B_TRUE,PRO_B_TRUE,&PushButton1_cmd_id);ProMenubarmenuPushbuttonAdd(MainMenu,PushButton,FirstButton,this button will show a message,NULL,PRO_
7、B_TRUE,PushButton1_cmd_id,MsgFile);ProCmdActionAdd(PushButton2_Act,(uiCmdCmdActFn)Test2,uiCmdPrioDefault,AccessDefault,PRO_B_TRUE,PRO_B_TRUE,&PushButton2_cmd_id);ProMenubarmenuPushbuttonAdd(MainMenu,PushButton2,SecondButton,this button will show a message,NULL,PRO_B_TRUE,PushButton2_cmd_id,MsgFile);
8、return status;extern C void user_terminate() AFX_MANAGE_STATE(AfxGetStaticModuleState();如图3、生成Hello“生成”“生成Hello”在项目Hello目录下会生成“Hello.dll”文件(E:programmingprojectsCcreoTestHellox64Debug)4、创建protk.dat文件在E:programmingprojectsCcreoTestHello目录下创建protk.dat文件,向文件添加如下内容:NAME HelloEXEC_FILE E:programmingproje
9、ctsCcreoTestHellox64DebugHello.dllTEXT_DIR E:programmingprojectsCcreoTestHellotextSTARTUP DLLFAIL_TOL TRUEDELAY_START FALSEALLOW_STOP TRUEREVISION 2014END5、在E:programmingprojectsCcreoTestHello目录下创建“text文件夹”,在“text文件夹”下面添加“IconMessage.text”,向其中添加如下内容:FunctionUserFunction#FirstButtonDemo1#secondbutton
10、Demo2#this button will show a messagethis button will show a message#show first buttonshow first button#四、测试1、打开Creo2.o,“使用工具”辅助应用程序,点击“注册”,选择之前写好的“protk.dat”文件,选中“Hello”,点击“启动”,关闭“辅助应用程序”的小框,可以在工具栏的“工具”中看到实现了上述程序的功能。注意事项:网上很多教程说要添加4个如下包含目录D:Creo 2.0Common FilesM010protoolkitincludesD:Creo 2.0Common
11、 FilesM010protoolkitprotk_applsincludesD:Creo 2.0Common FilesM010prodevelopincludesD:Creo 2.0Common FilesM010prodevelopprodev_applsincludes和4个如下库目录D:Creo 2.0Common FilesM010prodevelopx86e_win64objD:Creo 2.0Common FilesM010prodevelopi486_ntobjD:Creo 2.0Common FilesM010protoolkitx86e_win64objD:Creo 2.
12、0Common FilesM010prodevelopi486_ntobj但是,由于我的Creo是安装在64位系统下的,安装目录下没有包含目录D:Creo 2.0Common FilesM010prodevelopprodev_applsincludes和D:Creo 2.0Common FilesM010prodevelopi486_ntobjD:Creo 2.0Common FilesM010prodevelopi486_ntobj所以无法配置,实际上D:Creo 2.0Common FilesM010prodevelopi486_ntobjD:Creo 2.0Common FilesM0
13、10prodevelopi486_ntobj这两个库文件是对32位系统的支持,之前我用vs2008搭建配置环境的时候老是报如下错误1hello.obj : error LNK2001: unresolved external symbol _ProStringToWstring1hello.obj : error LNK2001: unresolved external symbol _ProMenubarMenuAdd1hello.obj : error LNK2001: unresolved external symbol _ProCmdActionAdd1hello.obj : erro
14、r LNK2001: unresolved external symbol _ProMenubarmenuPushbuttonAdd1E:programmingprojectsChelloworldcreoTesthelloReleasehello.dll : fatal error LNK1120: 4 unresolved externals1Build log was saved at file:/e:programmingprojectsChelloworldcreoTesthellohelloReleaseBuildLog.htm1hello - 5 error(s), 0 warn
15、ing(s)= Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped =原因是我下载的32为的vs2008,默认平台选择是32win(没有找到64位的平台),因此在调用库的时候回去寻找D:Creo 2.0Common FilesM010prodevelopi486_ntobjD:Creo 2.0Common FilesM010prodevelopi486_ntobj这两个库目录,而我没有配置这两个库目录,所以报错。换到vs2010之后,最开始我也大意地在“进行工程属性配置”那一步选择了win32平台,结果也报了上述一大串的平台,后来选择了X64之后就生成成功了!win32平台是默认的,x64要“新建”才能出来。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1