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

您的位置:網站首頁 > Proe教程

ProE二次開發中用toolkit開發trigger的程序方法

時間:2011-02-24 09:39:31 來源:

  本文介紹了ProE二次開發中用toolkit開發trigger的程序方法。

  使用toolkit開發trigger的程序時,往往需要能夠連續通過trigger來觸發dll中的函數.

  我碰到的問題:

  1.配置trigger:

  Name: CimDll

  Event: Create PIV

  Time: POST

  RequireNO

  DLL:Cim.dll

  Function:PDMTPIVCreatePostOperation

  2.源代碼:

  int PDMDLLInit()

  {

  PTCERROR pdm_status;

  FILE *g_pfileLog;

  g_pfileLog =fopen("test.dat","w");

  setbuf(g_pfileLog,NULL);

  fprintf(g_pfileLog,"begin test ");

  pdm_status = PDMTriggerRegister("PDMTPIVCreatePostOperation", PDMTPIVCreatePostOperation);

  if (pdm_status != PDM_SUCCESS)

  {

  printf("Failed to Register Trigger PIV Create Post. ");

  }

  return (pdm_status);

  }

  int PDMTPIVCreatePostOperation(int argc, void **argv)

  {

  fprintf(g_pfileLog,"test ");

  .....

  fprintf(g_pfileLog,"end test ");

  fclose(g_pfileLog);

  }

  結果:以上代碼存在的問題:如果我們在第一次checkin到C/S中后,刪除test.dat文件,然后再進行checkin時,發現沒有再生成test.dat,在函數PDMTPIVCreatePostOperation()中所進行的對文件的操作都無效.

  原因:我們使用trigger觸發時,真正起作用的是函數:PDMTPIVCreatePostOperation(),而PDMDLLInit()只是在第一次checkin時起作用,所以在第一次調用PDMTPIVCreatePostOperation()后,我就fclose(g_pfileLog),所以出現了上面的情況.所以注意的是:不要把一些重要的東西放在函數PDMDLLInit()中.