机械社区

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 1444|回复: 0

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

[复制链接]
发表于 2008-8-6 13:31:00 | 显示全部楼层 |阅读模式
使用toolkit开发trigger的程序时,往往需要能够连续通过trigger来触发dll中的函数. ' L- |; C" B# D9 J% ^% Y
我碰到的问题:
+ X* q6 ^4 W. _1 F' a   1.配置trigger:
5 U% k: m( T8 }5 z3 D" A8 W& }   Name: CimDll
& t3 U( }2 q1 s+ d9 T8 X   Event: Create PIV 1 Y5 Y- f( a& J( E& m+ Z
   Time:  POST
' R5 R  c. a' R8 t& h% V   RequireNO
/ J3 `# C7 l2 y1 @* r: L8 w# i   DLL:Cim.dll % b5 e2 i# u. n; \! m! ]4 Y+ a
   FunctionDMTPIVCreatePostOperation + d( R/ j" ]4 h6 b# ~
   
% a- z2 C9 n! Z8 E  2.源代码: : n* o' d  x" f. k+ b: a9 w7 S
   int PDMDLLInit()
4 a4 f0 N% `  _. ]) d! y5 N{ 1 j' w1 w1 q  _( [
   PTCERROR pdm_status; ! P3 o/ k( {( a1 |& l; g
   FILE      *g_pfileLog;    g_pfileLog =fopen("test.dat","w"); 2 u, m7 E5 Y  X2 P& {1 z8 \
   setbuf(g_pfileLog,NULL); 9 z+ x* A! `' D# Z; z
   fprintf(g_pfileLog,"begin test\n"); 8 z4 ]* R6 H5 @  y+ |& X7 L
   pdm_status = PDMTriggerRegister("DMTPIVCreatePostOperation", PDMTPIVCreatePostOperation); + R7 p& a( p' L2 C0 S
   if (pdm_status != PDM_SUCCESS)
) g: Z, I  W+ I. ^, \# k   {   2 h* e4 q9 @9 [& h3 e
    printf("Failed to Register Trigger PIV Create Post.\n");
5 m- L' R* o6 E  o0 F3 g9 E9 Y( x' T   } - X, h" r$ R* x2 h0 }4 }
    return (pdm_status); : c/ a  E5 x" f) j  T$ h1 I- S7 S8 I
} 7 O" I* j  V* W% J
int PDMTPIVCreatePostOperation(int argc, void **argv) " ?1 a9 p" `# z5 i
{
, S/ \1 T! A$ @& F- R  q; V   fprintf(g_pfileLog,"test\n"); ' X8 j4 O0 v. S3 _/ D; }- x3 r
   .....
7 h. h6 h. f6 d   fprintf(g_pfileLog,"end test\n");
! N" |8 _+ U" ]- X2 m1 M9 e" |   fclose(g_pfileLog);
( `9 \& F8 c% Y, G8 z}
# @# U7 y* D8 f5 x0 r$ B7 ?   结果:以上代码存在的问题:如果我们在第一次checkin到C/S中后,删除test.dat文件,然后再进行checkin时,发现没有再生成test.dat,在函数PDMTPIVCreatePostOperation()中所进行的对文件的操作都无效.   v7 i* o. {; H9 A  B
   原因:我们使用trigger触发时,真正起作用的是函数DMTPIVCreatePostOperation(),而PDMDLLInit()只是在第一次checkin时起作用,所以在第一次调用PDMTPIVCreatePostOperation()后,我就fclose(g_pfileLog),所以出现了上面的情况.所以注意的是:不要把一些重要的东西放在函数PDMDLLInit()中.
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-29 23:25 , Processed in 0.048972 second(s), 15 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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