机械必威体育网址

 找回密码
 注册会员

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
1#
发表于 2008-8-6 13:31:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
使用toolkit开发trigger的程序时,往往需要能够连续通过trigger来触发dll中的函数.
2 L* d7 T& s8 d1 H3 u6 m: K/ Y1 |我碰到的问题:
! \$ i. D& P: u# A/ I. m   1.配置trigger:   C% G4 z. z- \5 `
   Name: CimDll
2 a' n5 F( M/ m; J; B. _# t- n7 |   Event: Create PIV
6 r- H4 U$ f, F' W: u: x4 r8 j1 V   Time:  POST
& h: O5 x9 g6 T/ y   RequireNO
$ f+ O+ b" H6 o+ V' C: m+ ]   DLL:Cim.dll 6 f! \  l+ R' Y3 V% [0 a1 ^
   FunctionDMTPIVCreatePostOperation
6 B4 A. y# m" b; z0 D5 Q    ) @( n1 E5 B' y3 {$ ^6 L, P
  2.源代码:
' p3 ^* {# \  Z/ N3 t! J* x   int PDMDLLInit()
0 q! [* h( i6 _# n: Y% B  J{
7 j) N  q( q' u   PTCERROR pdm_status; 9 v6 f3 J, A! M' n- g. ?
   FILE      *g_pfileLog;    g_pfileLog =fopen("test.dat","w"); 8 @5 G2 H: Q' G: ?* ^, q5 v
   setbuf(g_pfileLog,NULL); 2 G7 t% ^  a( p" p6 J- W' ~
   fprintf(g_pfileLog,"begin test\n");
( y3 w3 i" P3 y; I$ l" a/ u0 \   pdm_status = PDMTriggerRegister("DMTPIVCreatePostOperation", PDMTPIVCreatePostOperation); & [+ _6 U6 H5 ?5 x# `
   if (pdm_status != PDM_SUCCESS)
8 J6 g2 s4 F9 p8 ^   {   
- A1 T1 ~' @$ U/ ^    printf("Failed to Register Trigger PIV Create Post.\n"); & l# m# ?. Q8 d( v  C" ~
   }
- [7 \( p3 F2 o0 Q. c    return (pdm_status);
; B- [7 C! b* }0 W7 A% V} 2 |5 v' N/ n' O9 n2 q8 L7 P+ c- j
int PDMTPIVCreatePostOperation(int argc, void **argv)
5 M& ?% c% x9 O8 n{
0 x& y: P# U+ p0 E  m% e   fprintf(g_pfileLog,"test\n");
. L' q$ D  u; C6 o( R" m& w- L   ..... ; P, V% M2 Q% U
   fprintf(g_pfileLog,"end test\n"); $ s8 V! F& X& y$ S
   fclose(g_pfileLog); * L( i- e+ n8 c6 V7 m) t1 T
}
) |" D9 z7 d; A3 c   结果:以上代码存在的问题:如果我们在第一次checkin到C/S中后,删除test.dat文件,然后再进行checkin时,发现没有再生成test.dat,在函数PDMTPIVCreatePostOperation()中所进行的对文件的操作都无效. 1 o& I7 D+ D6 H$ R+ x
   原因:我们使用trigger触发时,真正起作用的是函数DMTPIVCreatePostOperation(),而PDMDLLInit()只是在第一次checkin时起作用,所以在第一次调用PDMTPIVCreatePostOperation()后,我就fclose(g_pfileLog),所以出现了上面的情况.所以注意的是:不要把一些重要的东西放在函数PDMDLLInit()中.
回复

使用道具 举报

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

本版积分规则

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

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

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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