我想看一级黄色大片_久久亚洲国产精品一区二区_久久精品免视看国产明星_91久久青青青国产免费

您的位置:網(wǎng)站首頁(yè) > Proe教程

ProE二次開(kāi)發(fā)中用VC++開(kāi)發(fā)Pro/TOOLKIT程序的實(shí)例

時(shí)間:2011-02-24 09:39:31 來(lái)源:

  本文給出了ProE二次開(kāi)發(fā)中用VC++開(kāi)發(fā)Pro/TOOLKIT程序的實(shí)例。

  Pro/TOOLKIT是PTC公司提供給用戶(hù)使用C語(yǔ)言客戶(hù)化Pro/ENGINEER的API。

  在Pro/E 16.0以前是Pro/DEVELOP,從17版開(kāi)始換成Pro/TOOLKIT,但Pro/DEVELOP仍可以和Pro/TOOLKIT混合在一起使用。

  PTC提供的例子程序和培訓(xùn)教材都是使用C語(yǔ)言來(lái)進(jìn)行開(kāi)發(fā),自己手工編寫(xiě)makefile文件,然后通過(guò)nmake命令在命令行直接編譯、連接。這樣的方式對(duì)于已經(jīng)習(xí)慣于使用VC++編程的程序員來(lái)說(shuō),確實(shí)受到很多限制。

  經(jīng)過(guò)測(cè)試,我發(fā)現(xiàn)其實(shí)也可以在VC++環(huán)境下編寫(xiě)Pro/TOOLKIT程序,你會(huì)發(fā)現(xiàn)比使用makefile的方式更簡(jiǎn)單,更容易入門(mén)。

  以下我來(lái)手把手教各位如何VC++編寫(xiě)第一個(gè)Pro/TOOLKIT程序。

  我的開(kāi)發(fā)和測(cè)試環(huán)境是:

  簡(jiǎn)體中文Windows 2000 + SP4

  Pro/E 2001 2003010

  Visual C++ 6.0

  Pro/E二次開(kāi)發(fā)

  1、創(chuàng)建新工程

  啟動(dòng)VC++,新建工程。

  選擇 MFC AppWizard(dll)方式。

  指定工程名稱(chēng)及存放路徑。

  然后按“OK”按鈕。

  2、完成新工程的創(chuàng)建

  接受缺省設(shè)置。

  按“Finish”按鈕完成。

  3、配置開(kāi)發(fā)環(huán)境

  接下來(lái),你需要配置用來(lái)編譯、連接Pro/TOOLKIT程序的開(kāi)發(fā)環(huán)境。

  1)設(shè)置Pro/TOOLKIT和Pro/DEVELOP頭文件路徑;

  2)設(shè)置庫(kù)文件路徑;

  4、當(dāng)前工程設(shè)置

  選擇Win32 Release。

  設(shè)置Pro/TOOLKIT程序所需要的幾個(gè)庫(kù)文件。

  還有很重要的是,需要設(shè)置Ignore libraries:

  msvcrt.lib

  否則在編譯連接時(shí)由于庫(kù)沖突會(huì)出錯(cuò)。

  5、開(kāi)始編寫(xiě)程序

  接下來(lái),你就可以開(kāi)始編寫(xiě)程序了。

  Pro/TOOLKIT的程序需必須包括 user_initialize() 和 user_terminate()函數(shù)。

  user_initialize() 函數(shù)中必須至少調(diào)用一個(gè)Pro/TOOLKIT API函數(shù)。如果調(diào)用失敗將導(dǎo)致Pro/TOOLKIT 應(yīng)用程序失敗,并返回PRO_TK_GENERAL_ERROR。

  所以,我們?cè)贖ello.cpp程序中添加以下程序:

  #include "ProToolkit.h"

  int user_initialize()

  {

  return (0);

  }

  void user_terminate()

  {

  }

  在Hello.cpp文件中,

  包含需要的頭文件:

  #include

  #include

  #include

  #include

  在文件末尾添加以下程序:

  static int status;

  static uiCmdAccessState UserAccessTestMenu(uiCmdAccessMode access_mode);

  int MyTest();

  extern "C" int user_initialize()

  {

  static wchar_t menumsgfile[] = { 'u','s','e','r','m','s','g','.','t','x','t',''};

  uiCmdCmdId cmd_id;

  //在Help菜單的左邊添加Test菜單

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

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

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

  return(0);

  }

  static uiCmdAccessState UserAccessTestMenu (uiCmdAccessMode access_mode)

  {

  return (ACCESS_AVAILABLE);

  }

  int MyTest()

  {

  AfxMessageBox("祝賀你!");

  return 0;

  }

  extern "C" void user_terminate()

  {

  }

  6、添加菜單資源文件

  在Hello文件下創(chuàng)建text子文件夾,用來(lái)存放資源文件;

  在text下添加usascii子文件夾,同時(shí)創(chuàng)建usermsg.txt文件,內(nèi)容如下:

  Test

  &Test

  #

  #

  Hello

  &Hello

  #

  #

  Hello Help

  Hello! This is a Pro/TOOLKIT sample.

  #

  #

  7、添加TOOLKIT程序注冊(cè)文件

  在Hello目錄下添加protk.dat文件,內(nèi)容如下:

  name Hello

  startup dll

  allow_stop TRUE

  exec_file .Releasehello.dll

  text_dir .Text

  revision 2001

  description First Toolkit Application

  end

  8、測(cè)試程序

  到這里,已經(jīng)完成,如果你能夠編譯連接成功,會(huì)在Release目錄下發(fā)現(xiàn)Hello.dll文件。

  可以開(kāi)始測(cè)試了。

  你可以在Hello目錄下直接啟動(dòng)Pro/E,或者啟動(dòng)Pro/E后再選擇Hello目錄下的protk.dat文件進(jìn)行注冊(cè)。

  如果你能看到如上圖所示畫(huà)面,恭喜你,你的第一個(gè)使用VC++開(kāi)發(fā)的TOOLKIT程序成功了。

  單擊Test菜單下的Hello菜單,你就可以看到使用AfxMessageBox實(shí)現(xiàn)的信息框。

  9、中文菜單及提示

  以上我們實(shí)現(xiàn)了英文的菜單及提示信息。

  接下來(lái)我們來(lái)實(shí)現(xiàn)簡(jiǎn)體中文版的菜單及提示信息。

  在Text目錄下如上圖所示創(chuàng)建chinese_cn子目錄。

  在chinese_cn目錄下添加usermsg.txt文件,內(nèi)容如下:

  Test

  &Test

  測(cè)試(&T)

  #

  Hello

  &Hello

  你好(&H)

  #

  Hello Help

  Hello! This is a Pro/TOOLKIT sample.

  你好!這是第一個(gè)使用VC++開(kāi)發(fā)TOOLKIT應(yīng)用程序。

  #

  10、測(cè)試中文版菜單

  無(wú)需更改程序。

  直接進(jìn)行測(cè)試,即可在中文Pro/E下看到了中文菜單及提示信息。