[转] proe二次开发教程——手把手教你如何二次开发

经历了千辛万苦才把图片截取完整,现在就把它贴出来吧……

本实例是针对proe4.0在VS2005环境下的开发,对于vs2003以上版本的开发本例均适用,本例从开始的打开vs2005软件开始讲解,一步不漏,并加入适当的解释和必要的说明,相信照着做完之后应该没有不成功的了!

注:软件安装注意事项:proe的安装目录不能有空格,比如:“D:\Program Files\proeWildfire 4.0”是不对的,运行的时候会出错,要把路径中的空格去掉,如“D:\proeWildfire4.0”

一、配置相关信息:

打开VS2005,选择工具——》选项,

clip_image001[4]

在“项目和解决方案”中选择“VC++目录”,在“显示一下内容的目录”中选择“包含文件”,加入以下文件:

    D:\proeWildfire4.0\protoolkit\includes

    D:\proeWildfire4.0\protoolkit\protk_appls\includes

    D:\proeWildfire4.0\prodevelop\includes

clip_image002[4]

在“显示一下内容的目录”中选择“库文件”,加入以下文件:

D:\proeWildfire4.0\protoolkit\i486_nt\obj

D:\proeWildfire4.0\prodevelop\i486_nt\obj

clip_image003[4]

注:这是开始前的环境配置,一次配置之后永久生效,以后再新建项目就不需要再配置了

二、新建项目,进行项目设置:

文件——》新建——》项目:

clip_image004[4]

选择MFC DLL 模板,输入项目名称:

clip_image005[4]

确定后点完成,项目生成后选择 项目——》属性,进行属性设置:

clip_image006[4]

在test(本例的项目名称)属性页中选择配置属性——》连接器——》输入,在附加依赖项里加入:

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

clip_image007[4]

注:对于不同的环境附加依赖项是不同的,以上是VS2005版本的开发软件附加依赖项,如果是VC++6.0则是“protk_dll.lib protoolkit.lib mpr.lib wsock32.lib ”,同时还要加入忽略库“
msvcrt.lib”,还要选择“强制输出”,否则程序会因为一些警告终止编译。

至此,所有相关的设置都已经完成!

三、添加代码:

在test.cpp 文件下加入如下代码:

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

void MyTest();
static uiCmdAccessState UserAccessTestMenu (uiCmdAccessMode);
extern "C" int user_initialize()
{
AfxEnableControlContainer();
ProError status;
ProName menumsgfile;
uiCmdCmdId   cmd_id;

//在Help菜单的左边添加Test菜单
ProStringToWstring(menumsgfile,"usermsg.txt");

status = ProMenubarMenuAdd("Test","Test","Help", PRO_B_FALSE,menumsgfile);

status = ProCmdActionAdd("MyTest",(uiCmdCmdActFn)MyTest,uiCmdPrioDefault,UserAccessTestMenu,PRO_B_TRUE,PRO_B_TRUE,&cmd_id);

status = ProMenubarmenuPushbuttonAdd("Test","Hello","Hello","Hello Help",NULL,PRO_B_TRUE,cmd_id,menumsgfile);

return(0);
}
static uiCmdAccessState UserAccessTestMenu(uiCmdAccessMode access_mode)
{
return (ACCESS_AVAILABLE);
}
void MyTest()

AfxMessageBox(_T("祝贺你!测试成功!")); 
}
extern "C" void user_terminate()
{

}

clip_image008[4]

四、添加消息菜单:

在目录“D:\test”下新建文件夹“text”,在文件夹中新建一个txt文件,取名为usermsg.txt,内容为:

Test
    &Test
测试(&T)
    #
    Hello
    &Hello
你好(&H)
    #
    Hello Help
    Hello! This is a Pro/TOOLKIT sample.
你好!这是第一个使用VC++开发TOOLKIT应用程序。
    #

clip_image009[4]

五、编译,生成解决方案:

clip_image010[4]

至此,程序编译完成!

注:如果编译过程中出现“0已成功 1已失败”,则说明程序有错误,对不起,回头找找吧,找不清楚后面别看了……

六、编写注册文件:

新建一个dat文件,位置自定,加入内容:

name test
    startup dll
    allow_stop TRUE
    exec_file D:\test\debug\test.dll
    text_dir D:\test\text
    revision 1151
    end

clip_image011[4]

注:这是注册文件,相关信息的作用请自己翻书了,我前面的帖子也有介绍的,最好放在启动目录里,调用的时候省事!

七、使用辅助应用程序:

打开proe软件,选择工具——》辅助应用程序:

clip_image012[4]

在弹出的对话框中点注册,选择第六步所写的注册文件,点击启动,则菜单上就会出现“测试(T)”菜单了:

八、添加对话框:

右击资源视图中的test.rc,选择 “添加资源”,在弹出的添加资源

对话框中选择“Dialog”,新建之!如图:

clip_image013[8]

clip_image013[9]

将新建的对话框更名为预览窗口,右击窗口空白处,在快捷菜单下选

择“添加类”选项:在弹出的MFC类向导对话框中添加名为“dlg”的

类:

clip_image013[10]

clip_image014[4]

在test.cpp 文件中加入头文件 “#include "dlg.h"”,并将刚才弹

出的测试成功对话框改成自己新建的对话框,

即将“AfxMessageBox (_T("祝贺你!测试成功!")); ”处改成

     AFX_MANAGE_STATE(AfxGetStaticModuleState());
     dlg dlg;
     dlg.DoModal();

clip_image015[4]

clip_image016[4]

编译之,编译成功后打开proe软件,注册插件,在新建的测试菜单下

选择“你好”,就会弹出自己编辑的对话框!

clip_image017[4]

至此,编辑完毕!需要加入控件或者其他的东西就可以在这个对话框

中添加,那就是后续的东西了,在此不详述了……

clip_image018[4]

点击测试——》你好,会弹出对话框“祝贺你!测试成功!”,如图:

clip_image019[4]

至此,菜单的测试完成,这说明这个插件可以用了!后面将介绍如何插入对话框!

补充:

如果以exe形式运行proe程序,需要设定PRO_COMM_MSG_EXE环境变量,类似如下:

E:\Program Files\proeWildfire 2.0\i486_nt\obj\pro_comm_msg

s

 

posted @ 2009-11-02 16:14  喝水的牛儿  阅读(11143)  评论(6编辑  收藏  举报