找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 1745|回复: 0

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

[复制链接]
发表于 2008-8-6 13:31:00 | 显示全部楼层 |阅读模式
使用toolkit开发trigger的程序时,往往需要能够连续通过trigger来触发dll中的函数. : g  r. x! |$ V/ `
我碰到的问题: 1 F. }6 t  L# v7 p! V9 h# \
   1.配置trigger:
; M1 q2 _0 I- y9 E. q   Name: CimDll 2 O0 }) u' `" a, V4 _, W2 o  c- e/ B
   Event: Create PIV ( n+ ]; I+ Y( I# p) k
   Time:  POST ! h( H/ i' r& {  _% f
   RequireNO
9 t" R1 |. G; S7 a/ J6 w: T; y   DLL:Cim.dll 5 {8 G& t% _8 \; q+ ~* C! V
   FunctionDMTPIVCreatePostOperation . M. Y. @1 Z; i9 X% `
   
% _5 k3 |- q7 D' N$ y4 W# L. a  2.源代码:
1 D" ^/ r/ _% |; G5 ?% V$ R   int PDMDLLInit()
7 L7 A/ }0 L# A) U8 G{ . S, K0 n3 {; O( @8 F8 X
   PTCERROR pdm_status; ' a3 w7 F4 f3 H9 j3 U$ Q1 }# X
   FILE      *g_pfileLog;    g_pfileLog =fopen("test.dat","w");
- H' Q! m. L+ v% V   setbuf(g_pfileLog,NULL); * J2 W. d& T1 p' p7 G
   fprintf(g_pfileLog,"begin test\n");
$ E+ _- D/ L. [   pdm_status = PDMTriggerRegister("DMTPIVCreatePostOperation", PDMTPIVCreatePostOperation);
8 k7 R2 ^& n% {, j& }  f/ x& [   if (pdm_status != PDM_SUCCESS) 8 {1 \6 S* k$ Y4 x! M  w
   {   
/ \+ K: e$ J0 ~7 g    printf("Failed to Register Trigger PIV Create Post.\n");
. \- U7 {& ^' [   }
% v' v* y+ k5 C+ A0 B# u6 j/ j7 F    return (pdm_status);
! ~4 R* p/ s) L9 H}
+ H! X+ E# B4 G  g6 `& }( [  Nint PDMTPIVCreatePostOperation(int argc, void **argv)
! K& f* ~& Y/ e5 p{ 6 X; J+ j, k/ n# }
   fprintf(g_pfileLog,"test\n");
& c. g: n0 ]2 [' i' Y3 u   .....
$ y$ h! p0 z3 u) K  e   fprintf(g_pfileLog,"end test\n"); # a9 i% I' ?# t
   fclose(g_pfileLog);
3 z( m  `) B: C% u}
/ s+ b3 k4 q! D; N   结果:以上代码存在的问题:如果我们在第一次checkin到C/S中后,删除test.dat文件,然后再进行checkin时,发现没有再生成test.dat,在函数PDMTPIVCreatePostOperation()中所进行的对文件的操作都无效.
9 y& l* Z6 e  ]- Z5 O5 S* X/ o   原因:我们使用trigger触发时,真正起作用的是函数DMTPIVCreatePostOperation(),而PDMDLLInit()只是在第一次checkin时起作用,所以在第一次调用PDMTPIVCreatePostOperation()后,我就fclose(g_pfileLog),所以出现了上面的情况.所以注意的是:不要把一些重要的东西放在函数PDMDLLInit()中.
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-1 06:02 , Processed in 0.065337 second(s), 14 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

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