在网上找了很多资料,也遇到过很多问题。本文的配置过程主要参考了网上的两篇文章,地址如下:

http://www.doc88.com/p-3085972896759.html

http://wenku.baidu.com/link?url=4zc9tc-p4quoVG6PnVzg1kLc2g1auU9Guh9Zq4y1ow-U6U2qWPq_8YX0kyn4lwqOlZwtC10g72AK2L-iQ8TyH9Im7VTxhwepZuxb3FiHx4a

首先记录正确的环境配置过程,然后用一个实例程序验证,最后说明遇到的问题和注意事项。

电脑64位win7系统

配置过程如下:

一、新建MFC DLL

文件>新建>项目,选择MFC DLL,如图所示

DLL类型选择“使用共享 MFC DLL 的规则 DLL(D)”

二、开发环境配置

1、包含目录和库目录的设置(“D:\Creo 2.0”是本机Creo的安装目录)

1)包含目录的添加

操作:项目>属性>配置属性>VC++目录,选择包含目录,添加:

D:\Creo 2.0\Common Files\M010\prodevelop\includes

D:\Creo 2.0\Common Files\M010\protoolkit\protk_appls\includes

D:\Creo 2.0\Common Files\M010\protoolkit\includes

2)库目录的添加,与包含目录的添加类似,添加:

D:\Creo 2.0\Common Files\M010\prodevelop\x86e_win64\obj
D:\Creo 2.0\Common Files\M010\protoolkit\x86e_win64\obj

3、进行工程属性配置

1)“项目”>属性>配置属性>常规,点击“配置管理器”,配置为Debug,平台为x64,如图

2) 字符集选择“使用多字节字符集”

3) “预处理器”中对“预处理器定义”进行编辑,如下图

4) “代码生成”的“运行库”选择“多线程调试DLL(/MDd)

5)语言

6)“连接器”>“输入”,编辑“附加依赖库”,添加protk_dllmd.lib
netapi32.lib
wsock32.lib
psapi.lib
ws2_32.lib
mpr.lib

如下图

7)“忽略特定默认库”中添加“msvcrt.lib”,此处不截图。

三、添加实例程序

双击项目源文件中的“Hello.cpp”

1、添加头文件

#include "ProMenubar.h"

#include "ProMenu.h" #include "ProUtil.h"

#include  <ProToolkit.h>

#pragma comment(lib,"netapi32")

如图

2、尾部添加程序

static uiCmdAccessState AccessDefault(uiCmdAccessMode access_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,PushButton2_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_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);
return status; 

extern  "C" void user_terminate()
{  
AFX_MANAGE_STATE(AfxGetStaticModuleState()); 
}

如图

3、生成Hello

“生成”>“生成Hello”

在项目Hello目录下会生成“Hello.dll”文件(E:\programming\projects\C\creoTest\Hello\x64\Debug)

4、创建protk.dat文件

在E:\programming\projects\C\creoTest\Hello目录下创建protk.dat文件,向文件添加如下内容:

NAME Hello
EXEC_FILE E:\programming\projects\C\creoTest\Hello\x64\Debug\Hello.dll
TEXT_DIR  E:\programming\projects\C\creoTest\Hello\text
STARTUP DLL
FAIL_TOL TRUE
DELAY_START FALSE
ALLOW_STOP TRUE
REVISION 2014
END

5、在E:\programming\projects\C\creoTest\Hello目录下创建“text文件夹”,在“text文件夹”下面添加“IconMessage.text”,向其中添加如下内容:

Function
UserFunction
#
#

FirstButton
Demo1
#
#

secondbutton
Demo2
#
#
this button will show a message
this button will show a message

#
#

show first button
show first button

#

#

四、测试

1、打开Creo2.o,“使用工具”>"辅助应用程序",点击“注册”,选择之前写好的“protk.dat”文件,选中“Hello”,点击“启动”,关闭“辅助应用程序”的小框,可以在工具栏的“工具”中看到实现了上述程序的功能。
注意事项:
网上很多教程说要添加4个如下包含目录
D:\Creo 2.0\Common Files\M010\protoolkit\includes
D:\Creo 2.0\Common Files\M010\protoolkit\protk_appls\includes
D:\Creo 2.0\Common Files\M010\prodevelop\includes
D:\Creo 2.0\Common Files\M010\prodevelop\prodev_appls\includes
和4个如下库目录
D:\Creo 2.0\Common Files\M010\prodevelop\x86e_win64\obj
D:\Creo 2.0\Common Files\M010\prodevelop\i486_nt\obj
D:\Creo 2.0\Common Files\M010\protoolkit\x86e_win64\obj
D:\Creo 2.0\Common Files\M010\prodevelop\i486_nt\obj
但是,由于我的Creo是安装在64位系统下的,安装目录下没有
包含目录
D:\Creo 2.0\Common Files\M010\prodevelop\prodev_appls\includes
D:\Creo 2.0\Common Files\M010\prodevelop\i486_nt\obj
D:\Creo 2.0\Common Files\M010\prodevelop\i486_nt\obj
所以无法配置,实际上
D:\Creo 2.0\Common Files\M010\prodevelop\i486_nt\obj
D:\Creo 2.0\Common Files\M010\prodevelop\i486_nt\obj

这两个库文件是对32位系统的支持,之前我用vs2008搭建配置环境的时候老是报如下错误

1>hello.obj : error LNK2001: unresolved external symbol _ProStringToWstring
1>hello.obj : error LNK2001: unresolved external symbol _ProMenubarMenuAdd
1>hello.obj : error LNK2001: unresolved external symbol _ProCmdActionAdd
1>hello.obj : error LNK2001: unresolved external symbol _ProMenubarmenuPushbuttonAdd
1>E:\programming\projects\C\helloworld\creoTest\hello\Release\hello.dll : fatal error LNK1120: 4 unresolved externals
1>Build log was saved at "file://e:\programming\projects\C\helloworld\creoTest\hello\hello\Release\BuildLog.htm"
1>hello - 5 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
原因是我下载的32为的vs2008,默认平台选择是32win(没有找到64位的平台),因此在调用库的时候回去寻找
D:\Creo 2.0\Common Files\M010\prodevelop\i486_nt\obj
D:\Creo 2.0\Common Files\M010\prodevelop\i486_nt\obj

这两个库目录,而我没有配置这两个库目录,所以报错。

换到vs2010之后,最开始我也大意地在“进行工程属性配置”那一步选择了win32平台,结果也报了上述一大串的平台,后来选择了X64之后就生成成功了!
win32平台是默认的,x64要“新建”才能出来。

creo2.0+VS2010采用protoolkit二次开发环境配置(64位win7)相关推荐

  1. NX/UG二次开发环境配置方法—史上最详细版(以NX11.0和Visual Studio 2017为例)

    一.前言 本人之前在用NX12.0以及Visual Studio 2017进行NX二次开发时,进行过开发环境的配置,当时也遇到了一点问题,好在最后解决了.最近由于项目需求,我卸载了NX12.0,重装了 ...

  2. 相继上一篇,thingsboard的二次开发环境配置和简单的logo替换

    一.二次开发环境配置 1.idea安装及辅助插件下载 官方推荐使用的开发工具是IntelliJ IDEA,简称idea 就是这个东西,这里先介绍一下idea(以下简介从度娘复制): IDEA 全称 I ...

  3. ArcGIS Pro二次开发环境配置及项目创建示例

    一.软件版本 ArcGIS Pro 2.8 Visual Studio 2019 二.组件 ArcGIS Pro 2.8 SDK for .NET: proapp-sdk-templates.vsix ...

  4. C#对UG二次开发环境配置、调试和开发教程

    一.UG的宏录制 1.选择宏录制的语言C# 1.1 打开NX新建一个模型 1.2 打开文件->首选项->用户界面,设置录制语言为C# 1.3 打开开发人员,点录制即可进行录制 1.4 将录 ...

  5. vs2010+proe二次开发 环境配置

    1.环境变量 lang=en 可以设置proe的语言为英文 PROE_INSTALL_PATH=F:\software\Creo2.0\Creo2~1.0\Common~1\M090  路径中的数字和 ...

  6. 海康威视工业相机SDK二次开发环境配置—Windows10+VS2017

    参考链接: https://blog.csdn.net/motikesi/article/details/108287951 一.SDK下载地址: https://www.hikrobotics.co ...

  7. Revit二次开发环境配置(Revit 2020 +Visual Studio 2019)

    Revit 2019开sql教程发环境java基础教程的搭建,需要python基础教程安装的c#教程内容如下: Revit 2019(主要vb.net教程的开发环境) Visual Studio 20 ...

  8. 中望CAD二次开发环境配置及使用

    今天第一次接触中望CAD的二次开发,首先就需要搭建开发环境,网上的资料太少了,试着自己做了一下,现将整个过程记录下来,备查. (1)下载中望CAD2018,我在官网下的,试用30天,没去找破解版.我用 ...

  9. VS2008 Proe 5.0 and VS2010 Creo二次开发环境配置

    VS2008 Proe 5.0 包含文件: D:\Program Files\PTC\Creo Elements\Pro5.0\prodevelop\prodev_appls\includes D:\ ...

最新文章

  1. cisco aaa 授权后门测试
  2. 杭电 hdu 1003
  3. c++ lambda基本语法
  4. 直接让浏览器下载文件而不打开
  5. Java中的一些零星容易被忽略的API(及时补充)
  6. 因“突发肾结石” 孙宇晨宣布取消与巴菲特的午餐会面
  7. Workflow之Activity
  8. linux文件字节函数,各位大侠:linux/unix下有什么双字节的字符类型及其一整套处理函数? 高分送出,请帮帮小弟!!!!!!...
  9. mysql按年创建分区表,增加分区表,删除分区表,实战练习
  10. 2021年高处安装、维护、拆除复审考试及高处安装、维护、拆除模拟考试题
  11. 2020年全球及中国电源管理芯片(PMIC)行业发展现状及市场竞争格局分析,全球市场集中,德州仪器市占第一「图」
  12. 心理学matlab入门书籍,零基础MATLAB和PSYCHTOOLBOX自学
  13. Qt常用UI控件读取、写入方法
  14. 【协议森林】基于DPDK的原生态协议栈DPDK-ANS
  15. 让他们有事可做( 云中漫步zai)
  16. Swing批量重命名并导出excel
  17. [反汇编练习] 160个CrackMe之024
  18. CISSP考点拾遗——SDLC(1)
  19. [统计学理论基础] 方差 协方差 标准差
  20. [翻译] YLGIFImage 高效读取GIF图片

热门文章

  1. java 过滤所有特殊字符
  2. 【春秋招面试分享】讲一讲当时春秋招时做过的项目以及推荐几个项目+推荐面试突击的视频
  3. 闲聊: 女神异闻录4
  4. 父母不会用智能机?这几个功能可要教会他们
  5. centos下espeak文本转语音的代码实现
  6. [转]抽象基类与接口,共性与个性的选择!
  7. 看图猜地理-黑龙江篇
  8. Investigating Typed Syntactic Dependencies for Targeted Sentiment Classification Using GAT(2020)
  9. 语法糖 Syntactic sugar: 复杂代码的等价简洁替代
  10. 单词 of 《cyberspace :if you don't love it ,leave it 》