当前位置:文档之家› proe5.0环境下vs2008二次开发(附代码)

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

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

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行:为空(用#表示,必须在英文输入法下输入)

6)编写注册文件

格式:

NAME 应用程序标识名

EXEC_FILE 可执行程序名(包括路径)

TEXT_DIR Text目录路径

STARTUP 启动应用模式

ALLOW_UP 是否允许在PROE工作时终止应用程序DELAY_START 是否延迟调用应用程序

REVISION Pro/TOOLKIT版本号

END 结束标志

(每次修改后请重启PROE)

相关主题
文本预览
相关文档 最新文档