使用toolkit开发trigger的程序时,往往需要能够连续通过trigger来触发dll中的函数. g_pfileLog =fopen("test.dat","w"); int PDMTPIVCreatePostOperation(int argc, void **argv) } 结果:以上代码存在的问题:如果我们在第一次checkin到C/S中后,删除test.dat文件,然后再进行checkin时,发现没有再生成test.dat,在函数PDMTPIVCreatePostOperation()中所进行的对文件的操作都无效.
我碰到的问题:
1.配置trigger:
Name: CimDll
Event: Create PIV
Time: POST
RequireNO
DLL:Cim.dll
Function:PDMTPIVCreatePostOperation
2.源代码:
int PDMDLLInit()
{
PTCERROR pdm_status;
FILE *g_pfileLog;
setbuf(g_pfileLog,NULL);
fprintf(g_pfileLog,"begin test\n");
pdm_status = PDMTriggerRegister("PDMTPIVCreatePostOperation", PDMTPIVCreatePostOperation);
if (pdm_status != PDM_SUCCESS)
{
printf("Failed to Register Trigger PIV Create Post.\n");
}
return (pdm_status);
}
{
fprintf(g_pfileLog,"test\n");
.....
fprintf(g_pfileLog,"end test\n");
fclose(g_pfileLog);
原因:我们使用trigger触发时,真正起作用的是函数:PDMTPIVCreatePostOperation(),而PDMDLLInit()只是在第一次checkin时起作用,所以在第一次调用PDMTPIVCreatePostOperation()后,我就fclose(g_pfileLog),所以出现了上面的情况.所以注意的是:不要把一些重要的东西放在函数PDMDLLInit()中.
Pro/E二次开发使用toolkit开发trigger的程序
0
相关新闻
2008-07-18 23:14:32浅论Solidworks中尺寸公差标注的二次开发
2008-07-18 23:14:21基于Solidworks平台的二次开发技术
2008-07-18 23:13:57Visual C 对SolidWorks的二次开发方法
2008-07-18 23:13:44SolidWorks 中公差与符号标注的二次开发
2008-07-18 23:12:38基于SolidWorks二次开发的产品设计专家系统
2008-07-18 23:10:47基于Solidworks二次开发的活塞压缩机零件参

评论加载中…