前提条件:CREO3.0 API 和VS2012安装完成

第一步:创建MFC dll项目

第二步:打开项目属性,配置“包含目录”和“库目录”

这两个路径根据自己的安装目录选择

第三步:“预处理器”多添加一个PRO_USE_VAR_ARGS

第四步:添加“附加依赖项”所依赖的库和忽略一些库,为什么忽略待研究

附加依赖项:

mpr.lib
wsock32.lib
psapi.lib
netapi32.lib
protk_dllmd.lib

忽略特定默认库:

libcmtd.lib
msvcrt.lib
libcmt.lib

第五步:在源文件MFCLibrary4.cpp添加头文件和测试代码

头文件:

#include "ProMenubar.h" 
#include "ProMenu.h" 
#include "ProUtil.h" 
#pragma comment(lib,"netapi32")

测试代码(可直接复制到后面):

static uiCmdAccessState AccessDefault(uiCmdAccessMode access_mode)
{
    return(ACCESS_AVAILABLE);
}
void Test1()
{
    AfxMessageBox(_T("测试按钮A"));
}
void Test2()
{
    AfxMessageBox(_T("测试按钮B"));
}
void Test3()
{
    AfxMessageBox(L"我是第三个测试按钮");
}
extern "C" int user_initialize()
{
    ProError status;
    ProFileName  MsgFile;
    ProStringToWstring(MsgFile, "IconMessage.txt");  //注意此处的IconMessage与后面的text文件夹下的IconMessage.txt文件名必须相同 
    uiCmdCmdId PushButton1_cmd_id, PushButton2_cmd_id, PushButton3_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);
    ProCmdActionAdd("PushButton3_Act", (uiCmdCmdActFn)Test3, uiCmdPrioDefault, AccessDefault, PRO_B_TRUE, PRO_B_TRUE, &PushButton3_cmd_id);
    ProMenubarmenuPushbuttonAdd("MainMenu", "PushButton3", "Thirdbutton", "this button will show a message", NULL, PRO_B_TRUE, PushButton3_cmd_id, MsgFile);
    return status;
}
extern  "C" void user_terminate()
{
    AFX_MANAGE_STATE(AfxGetStaticModuleState());
}

第六步:编译

第七步:测试

1.把生成的.dll和lib另放到一个文件夹里:这里我放到:E:\testPro\creo3\CREOFILE

.

2.在路径E:\testPro\creo3\CREOFILE 下创建protk.dat用于注册

里面内容:(复制进去即可)

name   测试的插件
startup dll
exec_file  E:\testPro\creo3\CREOFILE\MFCLibrary4.dll
text_dir  E:\testPro\creo3\CREOFILE\TEXT
allow_stop true 
delay_start false 
end

3.在增加一个TEXT目录,里面放置一个文件,文件名称和代码中要对应,不是随便的

文件里内容:复制即可

Function  
UserTestFunction 

#   
FirstButton 
A Button 

#   
secondbutton 
B Button

#
Thirdbutton 
C Button
#
#
this button will show a message 
this button will show a message 

#   
show first button 
show first button 

#

4.打开下面的creo图标:

5.使用工具”>“辅助应用程序”,点击“注册”,选择之前写好的“protk.dat”文件,选中“测试的插件”,点击“启动”,关闭“辅助应用程序”的小框,可以在工具栏的“工具”中看到实现了上述程序的功能

CREO3.0二次开发+VS2012环境配置相关推荐

  1. 关于QGis1.8二次开发的环境配置

    这篇文章是基于已经正确编译并且生成二次开发所需的库文件的基础上的,如果你还没有得到开发的库文件,请参见我的上一篇博文,点击这里查看. OK,要进行二次开发首先就是环境配置.这里使用的QGis版本为1. ...

  2. 超详细KNIME二次开发的环境配置安装过程

    简介 KNIME Analytics Platform基于Eclipse构建,网络上配置很多有所遗漏,因此亲测后,整理出knime配置过程供参考 一.下载开发所需的基本环境 1.1.jdk配置 首先确 ...

  3. c语言对cad开发,CAD二次开发之环境配置

    1.开发语言介绍:lisp,VB,.net,c++,c#,object均可 个人觉得lisp相对简单,可移植性比较高,执行效率稍微慢了点,但是对于一般(基本上大数)的人来说是感觉不到它慢的,唯一的不好 ...

  4. Teamcenter二次开发客户端环境配置

    1)在eclipse界面中点击"窗口/window",选中"首选项/preferences",弹出如下界面,选中本机电脑安装好的jdk路径, 2)然后在选中&q ...

  5. KNIME二次开发的环境配置安装过程

    目录 1.搭建前提 2. 安装Node 开发向导 3. KNIME软件工具包下载 3.1 在eclipse中加载KNIME软件工具包 4. 安装所需依赖 5.Test the Example Exte ...

  6. win10系统海康威视SDK二次开发Qt环境配置

    先下载海康SDK 我下载的win64版本: 海康SDK官网下载 解压后得到库文件和头文件 头文件 库文件 新建QWidget项目,选择64位的kits工具,在pro目录新建include文件夹和lib ...

  7. 【基于Python+Flask项目部署系列--03】开发测试环境配置-基于Ubuntu16.04

    一.开发测试环境介绍 前提已经部署完[基于Python+Flask项目部署系列--02]Ubuntu16.04服务器安装.建议部署2套环境:开发测试环境+生产环境. 这篇文章主要讲解测试环境如何配置p ...

  8. T2080 U-BOOT与OS内核移植 准备篇(二)——开发调试环境入门(Trace32、QorIQ Linux SDK和QCVS)

    T2080 U-BOOT与OS内核移植 准备篇(二)--开发调试环境入门(Trace32.QorIQ Linux SDK和QCVS) 一.Trace32 1. 工具配置和软件安装 2. 使用PRACT ...

  9. wap六感程序二次开发_Cscms v4.0 二次开发y2002音乐网站程序

    Cscms v4.0 二次开发y2002音乐网站程序 源码简介: 修复了多处问题,比网上流传的版本要完整很多. 程序包括pc+wap,页面功能和原y2002基本一样. 程序比较完整了,但还是会有bug ...

最新文章

  1. Device Tree(一):背景介绍
  2. 了解c语言程序员(工程师)岗位需要掌握哪些能力?_码畜,码农,码皇,程序员有什么区别?...
  3. milp的matlab的案例代码_Matlab神经网络30个案例第1案例代码
  4. 阿里云云效技术专家:一文详解kubernetes下5种常见发布模式如何选择
  5. 工作148:父子组件传值 获取时间戳
  6. 车牌号随机函数 php,模拟生成车牌号的程序.程序运行.生成十个随机的车牌子.......
  7. wordpress迁移后,伪静态404解决方法
  8. 基于java的打砖块游戏_cocos creator 制作的打砖块游戏
  9. 学校为什么要单位接收函_学校让我签三方,居然是因为···
  10. 计算机MAR代表什么,MAR是什么意思?
  11. RT-Thread 学习文档
  12. python实现图像格式转换(bmp、jpg、png)
  13. 视频网站套上CDN是什么效果?
  14. UE4 Random Unit Vector In Cone
  15. 【JavaSE基础】00-计算机基础及环境搭建
  16. 北师大计算机专业课代号,2020北京师范大学计算机改考,不是408
  17. 献给 想要学习做网站的学弟学妹们
  18. python 中文编码_python:汉字编码
  19. 如何更新或回刷BIOS
  20. C/C++教程 第九章 —— windows编程入门

热门文章

  1. 链表中倒数第k个结点——《剑指offer》
  2. 在条码软件中如何制作ISBT-128条码
  3. 如何在前端编码时实现人肉双向编译
  4. 2023第八届中国数字供应链创新峰会
  5. linux命令行连接wifi RTL810xE PCI Express Fast Ethernet Controller 网卡
  6. 什么是二极管钳位的作用及原理?
  7. IDEA完整安装教程
  8. 爬虫第二弹之http协议和https协议
  9. 自动驾驶(七十四)---------硬件平台介绍
  10. Matlab上位机开发(五)Matlab串口通信