请输入关键词进行检索 使用帮助
Google
 
Pro/E二次开发使用toolkit开发trigger的程序-Pro/E

使用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\n");
pdm_status = PDMTriggerRegister("PDMTPIVCreatePostOperation", PDMTPIVCreatePostOperation);
if (pdm_status != PDM_SUCCESS)
{
printf("Failed to Register Trigger PIV Create Post.\n");
}
return (pdm_status);
}

int PDMTPIVCreatePostOperation(int argc, void **argv)
{
fprintf(g_pfileLog,"test\n");
.....
fprintf(g_pfileLog,"end test\n");
fclose(g_pfileLog);

}

结果:以上代码存在的问题:如果我们在第一次checkin到C/S中后,删除test.dat文件,然后再进行checkin时,发现没有再生成test.dat,在函数PDMTPIVCreatePostOperation()中所进行的对文件的操作都无效.
原因:我们使用trigger触发时,真正起作用的是函数:PDMTPIVCreatePostOperation(),而PDMDLLInit()只是在第一次checkin时起作用,所以在第一次调用PDMTPIVCreatePostOperation()后,我就fclose(g_pfileLog),所以出现了上面的情况.所以注意的是:不要把一些重要的东西放在函数PDMDLLInit()中.


本刊由产品互链网提供,资料仅供参考

  • 数控设备日常维护保养-日常维护
  • 数控铣床的加工工艺范围-数控铣
  • 数控设备的干扰问题-干扰
  • FANUC系统键盘定义-FANUC
  • 数控编程高手的八大必备条件-数控编程
  • 基于精密测量的复杂零件的快速反求-测量
 申请编辑员
 相关知识
欢迎成为编辑员
  本网为开放式知识库,成为编辑员可共同维护相关栏目知识。

产品互链网 © 版权所有 2001-2007 | 服务建立友谊 | 辽ICP备06016610号