找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 1830|回复: 0

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

[复制链接]
发表于 2008-8-6 13:31:00 | 显示全部楼层 |阅读模式
使用toolkit开发trigger的程序时,往往需要能够连续通过trigger来触发dll中的函数.
3 }/ b/ x( K# n! Z2 v( g6 t我碰到的问题: 4 ?+ ^% z% x6 c8 _- P' s; S! s' e
   1.配置trigger: $ A" M$ `' [2 i' j
   Name: CimDll - h5 i7 o- _" m4 n  z1 u# z
   Event: Create PIV
% i$ q- m7 |4 h. O- t3 R   Time:  POST ! W* C) x% B) f: S! d0 x4 }
   RequireNO 3 Q. u* ?# h9 l& m
   DLL:Cim.dll 2 D8 Q) v0 ?) g
   FunctionDMTPIVCreatePostOperation ; a/ w9 {4 q, k
    7 e' d. p+ @0 T& Y2 m& [, ~
  2.源代码: 0 b) ~4 {3 Z) |# _9 V  F
   int PDMDLLInit()
; a% h. K' i: [% F{ 1 D& G# Z- |3 }/ w+ U, @: B
   PTCERROR pdm_status; . r# Q; L  {" g5 x. t
   FILE      *g_pfileLog;    g_pfileLog =fopen("test.dat","w"); : f8 i2 m# I( e7 O. I, }' I2 u
   setbuf(g_pfileLog,NULL);
5 `- l* Y: J4 o) c/ }( z. j   fprintf(g_pfileLog,"begin test\n");
/ Y2 Z7 W: R' `: u4 v- w   pdm_status = PDMTriggerRegister("DMTPIVCreatePostOperation", PDMTPIVCreatePostOperation);
. G9 r$ }, S2 x   if (pdm_status != PDM_SUCCESS) 7 |8 `- _; S9 j  ~
   {   # r6 s* [/ s4 w9 r, K" O/ D1 l/ F
    printf("Failed to Register Trigger PIV Create Post.\n");
1 I& B' r7 L1 X& z) j/ I   } $ X% q" C' R8 ^; D( r  L3 a
    return (pdm_status); : ~) b9 J" M3 P0 h& U$ ^6 u% k
}
' t3 J$ c! S& j2 t; R& U& Pint PDMTPIVCreatePostOperation(int argc, void **argv)
- f9 D3 W. ]% M& X{
! T" C; Q3 u1 n( Q5 D$ v" }' a   fprintf(g_pfileLog,"test\n");
2 H' K6 n2 [* n$ X& S9 A7 W2 R   ..... 2 b' [' P5 `" [' Z
   fprintf(g_pfileLog,"end test\n");
1 D* }! D$ T  f. O   fclose(g_pfileLog); ' s) D+ E! z$ ]. z/ x
}
: Y. z5 Z( ]& [, {7 r5 v   结果:以上代码存在的问题:如果我们在第一次checkin到C/S中后,删除test.dat文件,然后再进行checkin时,发现没有再生成test.dat,在函数PDMTPIVCreatePostOperation()中所进行的对文件的操作都无效.
3 Z$ K% Y( `# G0 a) S. p2 Y   原因:我们使用trigger触发时,真正起作用的是函数DMTPIVCreatePostOperation(),而PDMDLLInit()只是在第一次checkin时起作用,所以在第一次调用PDMTPIVCreatePostOperation()后,我就fclose(g_pfileLog),所以出现了上面的情况.所以注意的是:不要把一些重要的东西放在函数PDMDLLInit()中.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Archiver|手机版|小黑屋|机械社区 ( 京ICP备10217105号-1,京ICP证050210号,浙公网安备33038202004372号 )

GMT+8, 2025-10-14 21:30 , Processed in 0.061535 second(s), 14 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表