经历了千辛万苦才把图片截取完整,现在就把它贴出来吧……
本实例是针对proe4.0在VS2005环境下的开发,对于vs2003以上版本的开发本例均适用,本例从开始的打开vs2005软件开始讲解,一步不漏,并加入适当的解释和必要的说明,相信照着做完之后应该没有不成功的了!
注:软件安装注意事项:proe的安装目录不能有空格,比如:“D:\Program Files\proeWildfire 4.0”是不对的,运行的时候会出错,要把路径中的空格去掉,如“D:\proeWildfire4.0”
一、配置相关信息:
打开VS2005,选择工具——》选项,
在“项目和解决方案”中选择“VC++目录”,在“显示一下内容的目录”中选择“包含文件”,加入以下文件:
D:\proeWildfire4.0\protoolkit\includes
D:\proeWildfire4.0\protoolkit\protk_appls\includes
D:\proeWildfire4.0\prodevelop\includes
在“显示一下内容的目录”中选择“库文件”,加入以下文件:
D:\proeWildfire4.0\protoolkit\i486_nt\obj
D:\proeWildfire4.0\prodevelop\i486_nt\obj
注:这是开始前的环境配置,一次配置之后永久生效,以后再新建项目就不需要再配置了
二、新建项目,进行项目设置:
文件——》新建——》项目:
选择MFC DLL 模板,输入项目名称:
确定后点完成,项目生成后选择 项目——》属性,进行属性设置:
在test(本例的项目名称)属性页中选择配置属性——》连接器——》输入,在附加依赖项里加入:
wsock32.lib
mpr.lib
psapi.lib
protk_dllmd.lib
注:对于不同的环境附加依赖项是不同的,以上是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()
{
}
四、添加消息菜单:
在目录“D:\test”下新建文件夹“text”,在文件夹中新建一个txt文件,取名为usermsg.txt,内容为:
Test
&Test
测试(&T)
#
Hello
&Hello
你好(&H)
#
Hello Help
Hello! This is a Pro/TOOLKIT sample.
你好!这是第一个使用VC++开发TOOLKIT应用程序。
#
五、编译,生成解决方案:
至此,程序编译完成!
注:如果编译过程中出现“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
注:这是注册文件,相关信息的作用请自己翻书了,我前面的帖子也有介绍的,最好放在启动目录里,调用的时候省事!
七、使用辅助应用程序:
打开proe软件,选择工具——》辅助应用程序:
在弹出的对话框中点注册,选择第六步所写的注册文件,点击启动,则菜单上就会出现“测试(T)”菜单了:
八、添加对话框:
右击资源视图中的test.rc,选择 “添加资源”,在弹出的添加资源
对话框中选择“Dialog”,新建之!如图:
将新建的对话框更名为预览窗口,右击窗口空白处,在快捷菜单下选
择“添加类”选项:在弹出的MFC类向导对话框中添加名为“dlg”的
类:
在test.cpp 文件中加入头文件 “#include "dlg.h"”,并将刚才弹
出的测试成功对话框改成自己新建的对话框,
即将“AfxMessageBox (_T("祝贺你!测试成功!")); ”处改成
AFX_MANAGE_STATE(AfxGetStaticModuleState());
dlg dlg;
dlg.DoModal();
编译之,编译成功后打开proe软件,注册插件,在新建的测试菜单下
选择“你好”,就会弹出自己编辑的对话框!
至此,编辑完毕!需要加入控件或者其他的东西就可以在这个对话框
中添加,那就是后续的东西了,在此不详述了……
点击测试——》你好,会弹出对话框“祝贺你!测试成功!”,如图:
至此,菜单的测试完成,这说明这个插件可以用了!后面将介绍如何插入对话框!
补充:
如果以exe形式运行proe程序,需要设定PRO_COMM_MSG_EXE环境变量,类似如下:
E:\Program Files\proeWildfire 2.0\i486_nt\obj\pro_comm_msg
s