Creo 4.0二次开发工具框架搭建

一、新建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文件

 

 

六、效果

 

posted @ 2020-06-07 21:17  任小七  阅读(2928)  评论(1编辑  收藏  举报