proe5.0环境下vs2008二次开发(附代码)

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

PRO/E 5.0环境下使用vs2008进行二次开发

1、环境设置(只需第一次设置)

1)进入工具/选项对话框,包含文件:○1./prodevelop/include; ○2./protoolkit/include

2)库文件:○1./protoolkit/i486_nt/obj; ○2./prodevelop/i486_nt/obj

2、新建MFC DLL工程(采用默认动态链接烈类型)

3、设置项目属性

1)进入项目/属性对话框(ALT+F7),选择配置管理器,将Active版本类型改为Release。

2)选择配置属性/链接器/输入,在附加依赖项一栏输入:

wsock32.lib mpr.lib protk_dll.lib prodev_dll.lib psapi.lib netapi32.lib

3)在忽略特定库一项输入mvcrt.lib

1)添加头文件

#include"ProMenu.h"

#include"ProUtil.h"

#include"ProMenubar.h"

2)添加初始化函数

extern"C"int user_initialize() {

ProError status;

// 用户接口程序

return status;

}

extern"C"void user_terminate() {

// 结束代码

}

// 定义菜单的可访问性设置函数

static uiCmdAccessState UserAccessDefault(uiCmdAccessMode access_mode) {

return(ACCESS_AVAILABLE);

}

int MsgBox() // 定义菜单按钮相应函数

{

AfxMessageBox(_T("My first Pro/E redeveloping"));

return 0;

}

extern"C"int user_initialize()

{

ProError status;

uiCmdCmdId cmd_idl;

ProFileName mfName;

ProStringToWstring(mfName, "Msg.txt");

// 添加菜单

status = ProMenubarMenuAdd("CHECK", "CHECK", "Utilities",

PRO_B_TRUE, mfName);

// 添加菜单动作

status = ProCmdActionAdd("ShowTest1", (uiCmdCmdActFn)MsgBox,

uiCmdPrioDefault,UserAccessDefault,

PRO_B_TRUE, PRO_B_TRUE, &cmd_idl);

// 添加菜单按钮

status = ProMenubarmenuPushbuttonAdd("CHECK", "MSGBOX", "PathMsg",

NULL, NULL,

PRO_B_TRUE, cmd_idl, mfName);

return status;

}

4)关键函数

wchar_t* ProStringToWstring ( wchar_t*wstr, char*str );

// 把char*类型转换为wchar_t*

ProError ProMenubarMenuAdd (

ProMenuItemName menu_name,

ProMenuItemLabel untranslated_menu_label,

ProMenuItemName neighbor,

ProBoolean add_after_neighbor,

ProFileName filename )

ProError ProCmdActionAdd (

char *action_name,

uiCmdCmdActFn action_cb,

uiCmdPriority priority,

uiCmdAccessFn access_func,

// 是否在非激活窗口显示

ProBoolean allow_in_non_active_window,

//是否在附属窗口显示

ProBoolean allow_in_accessory_window,

uiCmdCmdId *action_id );

ProError ProMenubarmenuPushbuttonAdd (

ProMenuItemName parent_menu,

ProMenuItemName push_button_name,

ProMenuItemLabel push_button_label,

ProMenuLineHelp one_line_help,

ProMenuItemName neighbor,

ProBoolean add_after_neighbor,

uiCmdCmdId action_id,

ProFileName filename );

static uiCmdAccessState UserAccessDefault(uiCmdAccessMode access_mode) {

return(ACCESS_AVAILABLE);

// ACCESS_REMOVE 移除菜单项

// ACCESS_INVISIBLE 不可见

// ACCESS_UNAVALIABLE 可见,变灰不可选

// ACCESS_DISALLOW 不可选

// ACCESS_AVAILABLE 可选

}

5)编写信息文件

格式第1行:关键字(必须与使用该信息文件函数的相关字符串相同)

第2行:菜单显示英文文本

第3行:中文文本

第4行:为空(用#表示,必须在英文输入法下输入)

相关文档
最新文档