供求信息 | 产品库 | 公司库 | 电子样本 | 模具技术市场 | 热流道 | 标准件 | 加工中心 | 模具材料 | 二手模具 | 塑料制品人才中心 | 展会中心 | 专利中心 | 会员中心 | 模具协会 | 英语字典 | 模具论坛 | 专业书店 | 网络硬盘 | 采购商服务中心

今日导读
返回中国塑料模具网资讯中心首页技术文献软件教程Pro/Engineer > 正文

Pro/E二次开发使用toolkit开发trigger的程序

来源:CAD世界网     作者:armstrong     发布时间:2007-08-23

    使用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()中.

上一篇:论CAXA电子图版与AutoCAD两款软件的的优确点   下一篇:PTC开发系统环境下的产品模块化与系列化设计研究

Google
论坛】【收藏此页】【关闭

免责申明:本网转载作品均注明出处,如转载作品侵犯作者署名权,并非出于本网故意,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与本网联系,我们将在第一时间删除内容或提供稿费!

产品推荐
会员推荐
关于本网 | 刊登广告 | 诚聘英才 | 欢迎合作 | 服务条款 | 服务项目 | 联系我们