机械必威体育网址

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 1572|回复: 0
打印 上一主题 下一主题

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

[复制链接]
跳转到指定楼层
1#
发表于 2008-8-6 13:31:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
使用toolkit开发trigger的程序时,往往需要能够连续通过trigger来触发dll中的函数.
4 ~* D+ D, F7 E4 L我碰到的问题:
5 {! ?( F7 s% x1 B# Z: T   1.配置trigger:
8 F  O8 V  L8 i   Name: CimDll
, q  ?' X. k1 e5 O5 n. ?   Event: Create PIV
; w, G7 M. U9 [# e4 D   Time:  POST
( z9 K; Y3 W! H  T5 V/ t2 P   RequireNO
; L6 I' h& W2 t! g, E9 W3 ~5 S5 H1 x   DLL:Cim.dll
2 N9 l; q% S4 L6 l9 A9 S   FunctionDMTPIVCreatePostOperation
) U) J4 g; _3 [; `2 X) C1 \+ I- s   
# G5 ^- D: b7 Q. `) _' i: T% O: O  2.源代码:
, o2 I5 Q* s2 G8 H   int PDMDLLInit()
8 |+ M; A* R9 D. d% }' l{ ' |4 h  h9 G3 {0 b) x
   PTCERROR pdm_status; 6 q$ k( U. ~& q! a( k! ^; r4 t
   FILE      *g_pfileLog;    g_pfileLog =fopen("test.dat","w");
% D7 U# t. L% M6 O6 D1 N   setbuf(g_pfileLog,NULL); # m+ U4 j' i1 M9 T9 H1 n
   fprintf(g_pfileLog,"begin test\n"); : x8 r6 x  A0 y. @
   pdm_status = PDMTriggerRegister("DMTPIVCreatePostOperation", PDMTPIVCreatePostOperation);
$ m, M6 O% I7 m" ^- H4 G1 j   if (pdm_status != PDM_SUCCESS)
* f  a  i& J4 v6 o/ j   {   " s: ]4 @% i- X( p! z0 M9 B( ?# J
    printf("Failed to Register Trigger PIV Create Post.\n"); ! d- Q9 f2 ]( ^9 O7 \" J! K" ^
   }
3 `  V  M! q, p$ U' M$ e& s    return (pdm_status);
6 Y9 B2 p3 v5 t0 S( L( `1 h}
1 p* ?% e7 O: S. Tint PDMTPIVCreatePostOperation(int argc, void **argv) & B; N9 L3 P6 g3 ?+ ?1 d
{
! |0 U9 I/ G5 F, A) B' l* ?   fprintf(g_pfileLog,"test\n"); # `' n1 u3 m- g
   .....
9 [# @3 U1 [2 c) G! U/ ?   fprintf(g_pfileLog,"end test\n");
0 z. T. h$ @) F   fclose(g_pfileLog); ( ^7 g+ h1 h$ f" ]! a1 q& Q
}
  ]& P  @5 V# w0 q5 Z4 _   结果:以上代码存在的问题:如果我们在第一次checkin到C/S中后,删除test.dat文件,然后再进行checkin时,发现没有再生成test.dat,在函数PDMTPIVCreatePostOperation()中所进行的对文件的操作都无效.   H$ g2 Z$ V; Q+ r5 o2 O
   原因:我们使用trigger触发时,真正起作用的是函数DMTPIVCreatePostOperation(),而PDMDLLInit()只是在第一次checkin时起作用,所以在第一次调用PDMTPIVCreatePostOperation()后,我就fclose(g_pfileLog),所以出现了上面的情况.所以注意的是:不要把一些重要的东西放在函数PDMDLLInit()中.
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|机械必威体育网址 ( 京ICP备10217105号-1,京ICP证050210号,浙公网安备33038202004372号 )

GMT+8, 2024-11-22 17:31 , Processed in 0.048155 second(s), 14 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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