机械社区

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 1689|回复: 0

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

[复制链接]
发表于 2008-8-6 13:31:00 | 显示全部楼层 |阅读模式
使用toolkit开发trigger的程序时,往往需要能够连续通过trigger来触发dll中的函数. ! B  R0 _3 F9 e, j4 \# @2 T
我碰到的问题: ( P1 s1 Z% U; S5 m1 ^5 e
   1.配置trigger:
3 g" [9 d7 }) N+ ^6 |: h  h$ S; U   Name: CimDll 7 y- @% {; y) ?
   Event: Create PIV
+ Y" Z! c0 ^# W* m   Time:  POST
! _$ C9 e* P5 c8 M" t   RequireNO 7 `# f6 n0 _( \  T. s
   DLL:Cim.dll ! F8 o, j, \# B# r# A
   FunctionDMTPIVCreatePostOperation # Q2 w8 J& ?! i. E0 @7 R6 T
   
% t: ^5 A3 h0 z8 M! N- y  2.源代码:
# ~3 Y5 \! V9 d7 e" d+ P   int PDMDLLInit()
/ {$ D9 ], l) j  V) B6 e- i& @5 H{ 3 z8 j6 L0 B. R! y& A/ ]8 g
   PTCERROR pdm_status; 2 J7 Z6 ?1 C: F  E% D( Y
   FILE      *g_pfileLog;    g_pfileLog =fopen("test.dat","w");
+ `4 ~3 Q9 b# c, J; G) ~5 O3 @   setbuf(g_pfileLog,NULL); ; L, _" W; G& H" z  k4 q! E0 i
   fprintf(g_pfileLog,"begin test\n");
/ r8 \5 `' l4 g) T% E9 R7 w   pdm_status = PDMTriggerRegister("DMTPIVCreatePostOperation", PDMTPIVCreatePostOperation);
" Y" z" W5 V: ?& g   if (pdm_status != PDM_SUCCESS) - m6 W4 ]4 R* g) R
   {   7 M, X, Q% g; |' y$ X0 L8 _2 H4 n
    printf("Failed to Register Trigger PIV Create Post.\n"); / ]/ S4 j- I5 H& ~  A& L" I
   } 7 I4 Y5 q0 q* L3 Y' J
    return (pdm_status);
; ]5 _8 `! w5 T7 L1 _3 Y} $ e, W8 r7 q& g0 t" e$ H
int PDMTPIVCreatePostOperation(int argc, void **argv) & {% P& B, _$ |- Y4 r3 x
{ / y4 X4 R* I" ]' L: b" w/ `
   fprintf(g_pfileLog,"test\n");
$ A. k% u3 s8 U; E1 l: I   .....
* C- u3 t" G$ f, o   fprintf(g_pfileLog,"end test\n");
% R, B9 {! T  ^1 W$ T6 `   fclose(g_pfileLog);
) j: R9 ~; b( m) |}
2 W6 r( O. d/ S5 R0 k; [   结果:以上代码存在的问题:如果我们在第一次checkin到C/S中后,删除test.dat文件,然后再进行checkin时,发现没有再生成test.dat,在函数PDMTPIVCreatePostOperation()中所进行的对文件的操作都无效.
4 [+ E. L% p0 z# A- `) s/ \; c   原因:我们使用trigger触发时,真正起作用的是函数DMTPIVCreatePostOperation(),而PDMDLLInit()只是在第一次checkin时起作用,所以在第一次调用PDMTPIVCreatePostOperation()后,我就fclose(g_pfileLog),所以出现了上面的情况.所以注意的是:不要把一些重要的东西放在函数PDMDLLInit()中.
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-4 02:20 , Processed in 0.055434 second(s), 14 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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