找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 1829|回复: 0

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

[复制链接]
发表于 2008-8-6 13:31:00 | 显示全部楼层 |阅读模式
使用toolkit开发trigger的程序时,往往需要能够连续通过trigger来触发dll中的函数.
1 _+ w. {3 M+ q' n5 y我碰到的问题: * m- }* i) p$ v% o& I
   1.配置trigger:
! o& G3 b4 d; I5 j- l9 R   Name: CimDll
4 v8 N/ A6 w8 Y  q, N. T( T   Event: Create PIV 1 }' u2 Q1 e9 i: b2 ^+ p
   Time:  POST
' O  l& z( _" W! {   RequireNO ' y! c, W0 q3 K! G
   DLL:Cim.dll
" \: V" k& T" u( p* E( |   FunctionDMTPIVCreatePostOperation 7 `/ f  K+ g1 \6 X2 c* H7 Y
    $ N. B  W) z$ L7 s- ]" Q
  2.源代码: # u8 M+ F* }* i# I7 I2 T7 F
   int PDMDLLInit() 6 U5 E8 N( H( y1 U+ ~# n2 q1 x; {  U
{
6 Y: n  R5 |& R) u: V  A   PTCERROR pdm_status;
2 a. [; W9 a+ X/ I  @   FILE      *g_pfileLog;    g_pfileLog =fopen("test.dat","w"); , E' F- ]/ z7 J% b4 ~) }0 T
   setbuf(g_pfileLog,NULL);
; @1 M; u5 ]0 u  m& m# }. W   fprintf(g_pfileLog,"begin test\n");
. v% W" b1 e1 k4 T1 z- a   pdm_status = PDMTriggerRegister("DMTPIVCreatePostOperation", PDMTPIVCreatePostOperation); 4 V9 g) |# b8 l6 A+ P* S
   if (pdm_status != PDM_SUCCESS)
9 O8 s4 o$ L, g* F0 b. h2 g   {   ; a& ?. Z8 t0 b
    printf("Failed to Register Trigger PIV Create Post.\n");
1 K& z; {3 O& w- o. q! e   }
5 G5 p, z5 W/ C$ p' t  u! l    return (pdm_status);
) H& Z0 D* a% ]( L9 Z4 n' l1 @}
9 |) k$ R# Q# X4 N2 D8 p% o0 _int PDMTPIVCreatePostOperation(int argc, void **argv) : i. t/ D  C; g- `. w
{ & J( d) |8 t2 [3 H  h
   fprintf(g_pfileLog,"test\n"); 1 k: c9 u1 O0 @3 [; t
   .....
+ q) o6 d8 B$ V   fprintf(g_pfileLog,"end test\n");
# U8 f% e: a8 m8 T, o   fclose(g_pfileLog);
. B% _$ g8 {. f* ?3 p7 y% K}
6 C2 e1 d9 ^, y( b   结果:以上代码存在的问题:如果我们在第一次checkin到C/S中后,删除test.dat文件,然后再进行checkin时,发现没有再生成test.dat,在函数PDMTPIVCreatePostOperation()中所进行的对文件的操作都无效. 3 w* c% L1 v% f
   原因:我们使用trigger触发时,真正起作用的是函数DMTPIVCreatePostOperation(),而PDMDLLInit()只是在第一次checkin时起作用,所以在第一次调用PDMTPIVCreatePostOperation()后,我就fclose(g_pfileLog),所以出现了上面的情况.所以注意的是:不要把一些重要的东西放在函数PDMDLLInit()中.
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-14 19:06 , Processed in 0.061763 second(s), 14 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

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