本文介紹了ProE二次開發(fā)中用toolkit開發(fā)trigger的程序方法。
使用toolkit開發(fā)trigger的程序時(shí),往往需要能夠連續(xù)通過trigger來觸發(fā)dll中的函數(shù).
我碰到的問題:
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);
}
結(jié)果:以上代碼存在的問題:如果我們在第一次checkin到C/S中后,刪除test.dat文件,然后再進(jìn)行checkin時(shí),發(fā)現(xiàn)沒有再生成test.dat,在函數(shù)PDMTPIVCreatePostOperation()中所進(jìn)行的對文件的操作都無效.
原因:我們使用trigger觸發(fā)時(shí),真正起作用的是函數(shù):PDMTPIVCreatePostOperation(),而PDMDLLInit()只是在第一次checkin時(shí)起作用,所以在第一次調(diào)用PDMTPIVCreatePostOperation()后,我就fclose(g_pfileLog),所以出現(xiàn)了上面的情況.所以注意的是:不要把一些重要的東西放在函數(shù)PDMDLLInit()中.
相關(guān)文章
- 2021-08-23精通AutoCAD三維設(shè)計(jì)與開發(fā)PDF下載
- 2021-08-22AutoCAD 2013應(yīng)用與開發(fā)系列中文版AutoCAD 2013室內(nèi)裝
- 2021-08-22AutoCAD 2013應(yīng)用與開發(fā)系列中文版AutoCAD 2013機(jī)械圖
- 2021-08-19數(shù)字化成圖-最新AutoCAD地形圖測繪高級開發(fā)PDF下載
- 2021-08-03Autodesk RevitStructure2012應(yīng)用寶典 [歐特克軟件(中
- 2021-08-02Autodesk RevitMEP2012應(yīng)用寶典 [歐特克軟件(中國)有限
- 2021-08-02Autodesk Revit2013族達(dá)人速成 [歐特克軟件(中國)有限公
- 2021-08-01Visual LISP程序設(shè)計(jì)(AutoCAD 2006)PDF下載
- 2021-08-01Visual Basic與AutoCAD二次開發(fā)PDF下載
- 2021-07-31Autodesk Revit2012族達(dá)人速成 [歐特克軟件(中國)有限公