一、新建MFC DLL工程

 二、配置项目属性

附加依赖项中输入:netapi32.lib;psapi.lib;mpr.lib;wsock32.lib;protk_dll_NU.lib;protk_dllmd_NU.lib;protkmd_NU.lib;protoolkit_NU.lib;pt_asynchronous.lib;ptasyncmd.lib;ucore.lib;udata.lib;

尝试编译工程,如果编译失败,检查上面的配置项是否都正确,编译成功,会生成对应dll,打开dll所在的路径,进行下面的菜单创建。

三、添加菜单文件

工程路径下新建CreoDLL.dat文件,其内容如下:

NAME CreoDLL
STARTUP dll
EXEC_FILE E:\Code\CreoDLL\x64\Release\CreoDLL.dll
TEXT_DIR E:\Code\CreoDLL\x64\Release\text
ALLOW_STOP TRUE
REVISION 1.0
END

在dll同级目录,新建text文件夹,并在里面添加menu.txt(命名自定义),保存的格式为ANSI,否则显示中文菜单为乱码。如下图

menu.txt的内容如下:

 四、添加代码

在CreoDLL.cpp中添加头文件

#include <ProMenuBar.h>
#include <ProUtil.h>

并添加下列代码,编译工程

//动作1函数
void btn1Action()
{
return;
} uiCmdAccessState access_func(uiCmdAccessMode access_mode)
{
return ACCESS_AVAILABLE;
} // 函数入口,Creo与Visual Studio的接口
extern "C" int user_initialize()
{
ProError status;
ProFileName MsgFile;
ProStringToWstring(MsgFile, "menu.txt");
//声明按钮
uiCmdCmdId btn1;
//添加菜单
status = ProMenubarMenuAdd("Menu1", "Menu1_Label", NULL, PRO_B_TRUE, MsgFile);//菜单标签名(第二个参数)与menu.txt的菜单标签名对应
//添加动作
status = ProCmdActionAdd("rewrite_button_action", (uiCmdCmdActFn)btn1Action, uiProeImmediate, access_func, PRO_B_TRUE, PRO_B_TRUE, &btn1);
//添加按钮
status = ProMenubarmenuPushbuttonAdd("Menu1", "btn1Name", "Button_Label", "Button_Label", NULL, PRO_B_TRUE, btn1, MsgFile);//按钮标签名(第三个参数)和帮助名(第四个参数)都要与menu.txt的按钮标签名一致 return status;
} extern "C" void user_terminate()
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
}

五、Creo中添加dat文件

六、效果

Creo 4.0二次开发工具框架搭建的更多相关文章

  1. Silverlight开源框架SL提供便捷的二次开发银光框架

    Silverlight开发框架SilverFrame欢迎咨询 基于Silverlight4.0开发,兼容Silverlight 5.0,SQLServer2005数据库.WCF: 本框架有清爽的前端界 ...

  2. PHP开发搭建环境二:开发工具PhpStorm安装、激活以及配置

    关于php的开发工具很多,目前市面上最好用最强大的莫过于PhpStorm这款开发神器了,但是鉴于很多开发者朋友在网站上下载的PhpStorm开发工具不能用,或者使用起来很不方便,笔者把最好用的下载地址 ...

  3. Java学习笔记二:Java开发工具Eclipse的安装与使用

    Java开发工具Eclipse的安装与使用 正如office一样我们在开发java语言过程中同样需要依款不错的开发工具,目前市场上的IDE很多,这里只演示Eclipse的安装: 一:下载软件: 1.下 ...

  4. scratch3.0二次开发scratch3.0基本介绍(第一章)

    为什么要自己开发而不使用官方版本? 这个问题要看我们的做少儿编程教育的需求是怎么样的. scratch本身提供了离线版本以及官网在线平台供我们使用,这足以满足我们对于编程教学模块的需求.但是对于一些教 ...

  5. 17 win7 sp1 x64/VS2015下配置creo4.0二次开发环境——调用了众多开源库(ceres-solver,PCL1.8.0,office 2016COM接口,MySql数据库等)

    0 引言 本次开发环境的配置是在综合考虑了开源库的版本.VS版本以及CREO4.0的版本,同时针对甲方需求选择了win7 sp1 x64系统. 配置的过程中遇到了形形色色的问题,但是一一解决了.通过这 ...

  6. NX二次开发VS环境搭建

    1.安装VS2019(直接安装高版本:与NX匹配时向下兼容,不需要纠结) 2.安装习惯使用的NX(建议直接上NX1980,新版不管是功能还是界面都比低版好用得多.很多人说新版不好用,这只是个人习惯和接 ...

  7. Python 学习笔记(二)开发环境的搭建

    安装Python windows 下安装: 下载地址:https://www.python.org/downloads Python的版本 3.x 是趋势 2.x 还在被大量使用 至于使用2.x 还是 ...

  8. 【一】Swift 3.0 新浪微博项目实战 -整体框架搭建

    最近要接手swift,所以找了个视频跟着做一下实战项目,在此记录一下过程和心得 框架搭建和目录拆分 关键词:MVVM 架构,桥接文件 桥接文件用于引入OC的头文件,Swift就可以正常使用(宏除外). ...

  9. TinkPHP框架开发的CRMEB小程序商城v4.0二次开发集成支付宝支付

    前言 大家都知道支付宝支付和微信支付宝都只能局限在自己的平台,微信内支付宝支付是根本就不能使用,即使是公众号支付也需要跳转到外部浏览器才可以唤起支付宝支付,并且QQ浏览器唤起支付宝支付还是问题很多,所 ...

  10. CRMEB小程序商城v4.0二次开发对接集成阿里云短信

    作者:廖飞 - CRMEB小程序商城研发项目组长 前言 cremb小程序商城v4.0版本支持短信平台为云信,但有部分用户有需求对接阿里云短信,这篇文章将对阿里云短信平台如何对接方以及对接流程详细说明. ...

随机推荐

  1. [转]ptp(precision time protocol)时钟同步

    一.介绍1:什么是ptpPTP(Precision Time Protocol) 是一个通过网络同步时钟的一个协议.当硬件支持时,PTP 精度能达到亚微秒,比 NTP(Network Time Pro ...

  2. B站千万级长连接实时消息系统的架构设计与实践

    本文由哔哩哔哩资深开发工程师黄山成分享,原题"千万长连消息系统",本文进行了排版和内容优化等. 1.引言 在当今数字娱乐时代,弹幕已经成为直播平台上不可或缺的互动元素之一. 用户通 ...

  3. Pytorch损失函数总结

    损失函数 nn.L1Loss 创建一个衡量输入中每个元素之间的平均绝对误差 (MAE) 的标准XX和目标是的是的. nn.MSELoss 创建一个标准,用于测量输入中每个元素之间的均方误差(平方 L2 ...

  4. 【译】使用 Visual Studio Profiler 进行基准测试

    在 Visual Studio 17.13 预览版中,我们发布了更新的 BenchmarkDotNet 诊断器,允许您使用性能分析器中的更多工具来分析基准测试.有了这个变化,可以非常快速地挖掘 CPU ...

  5. 转载:大模型所需 GPU 内存笔记

    转载文章:大模型所需 GPU 内存笔记 引言 在运行大型模型时,不仅需要考虑计算能力,还需要关注所用内存和 GPU 的适配情况.这不仅影响 GPU 推理大型模型的能力,还决定了在训练集群中总可用的 G ...

  6. 求mod运算

    求A mod B 要求 B必须是2的次方 方法 A mod B = A & (B - 1) 程序 #include <stdio.h> //10 mod 8 = 2 int add ...

  7. VulNyx - Internal

    扫描发现有三个端口 basic验证需要用户名密码登录 访问80端口 \URLFinder 发现有个internal的php文件 看看有无任意文件读取漏洞 发现没有回显 但是总感觉怪怪的 应该是有啥东西 ...

  8. 记一次 .NET某数字化协同管理系统 内存暴涨分析

    一:背景 1. 讲故事 高级调试训练营里的一位朋友找到我,说他们跑在linux上的.NET程序出现了内存泄露的情况,上windbg观察发现内存都是IMAGE给吃掉了,那些image都标记了 doubl ...

  9. C# Newtonsoft.Json JObject常用方法

    1.创建-用匿名对象创建 JObject JObject ob = JObject.FromObject(new { RPT_ID = "getList", pageSize = ...

  10. 微信小程序slot(二)

    在组件的 wxml 中可以包含 slot 节点,用于承载组件使用者提供的 wxml 结构. 默认情况下,一个组件的 wxml 中只能有一个 slot .需要使用多 slot 时,可以在组件 js 中声 ...