机械社区

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 1576|回复: 0

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

[复制链接]
发表于 2008-8-6 13:31:00 | 显示全部楼层 |阅读模式
使用toolkit开发trigger的程序时,往往需要能够连续通过trigger来触发dll中的函数. 9 f9 Z/ v2 R! s, N+ u3 L0 H' q
我碰到的问题:
3 v# g  c; ~& u   1.配置trigger:
: H+ _* s" V( u# R   Name: CimDll
% h2 T% x6 M+ s0 d& x   Event: Create PIV / P! U7 F' ~9 v4 p
   Time:  POST ' I9 z) u2 R. D0 ?1 Q3 l4 v
   RequireNO
0 h: n2 W( t5 k: f; I% s   DLL:Cim.dll
2 e% S6 m7 T8 G0 w# \   FunctionDMTPIVCreatePostOperation
' j0 a) a4 |9 b8 v   
. z% t1 j, l% E9 d  2.源代码: 1 h: x" `. {  ~. W4 }% p0 c
   int PDMDLLInit()
; o$ c. [. h$ R6 T{
. t5 B  Q: O3 z- O   PTCERROR pdm_status; $ [+ U8 D: P6 q2 K
   FILE      *g_pfileLog;    g_pfileLog =fopen("test.dat","w");
) C! `' l3 w) }) w9 ~3 C   setbuf(g_pfileLog,NULL);
4 U$ m, Y0 p# Z8 v' F   fprintf(g_pfileLog,"begin test\n"); & w& e9 h$ T# H( f' ^! O; U
   pdm_status = PDMTriggerRegister("DMTPIVCreatePostOperation", PDMTPIVCreatePostOperation);
; a+ N8 J) `: U9 X, s1 `   if (pdm_status != PDM_SUCCESS)
! R. g1 ]5 B! _( S  [: D; V$ m: |   {   
  s1 F4 w" F7 `4 n+ ^. N+ x    printf("Failed to Register Trigger PIV Create Post.\n");
- r2 r, n) \. L3 F   } + }8 b& Q0 ~: j4 ]& I) \- G
    return (pdm_status);
( G0 i  L9 [- `- S% _7 |& ?- Y8 Z; i% B} ' j) o" f. W1 h! R/ A
int PDMTPIVCreatePostOperation(int argc, void **argv) # b$ K+ e4 \3 G6 U
{
: h2 b0 ?" u; R" l   fprintf(g_pfileLog,"test\n"); . S3 S$ a2 h! ~, `' f9 c
   .....
) b2 d9 N9 W- }- N! \   fprintf(g_pfileLog,"end test\n");
# S3 w; w. W# F0 b! a   fclose(g_pfileLog);
5 _- L, t( E9 h0 W3 [1 E} 2 d7 V6 j0 [) X6 b" y! N& I2 o
   结果:以上代码存在的问题:如果我们在第一次checkin到C/S中后,删除test.dat文件,然后再进行checkin时,发现没有再生成test.dat,在函数PDMTPIVCreatePostOperation()中所进行的对文件的操作都无效.
9 [+ X' ^. n: |- x2 z" h   原因:我们使用trigger触发时,真正起作用的是函数DMTPIVCreatePostOperation(),而PDMDLLInit()只是在第一次checkin时起作用,所以在第一次调用PDMTPIVCreatePostOperation()后,我就fclose(g_pfileLog),所以出现了上面的情况.所以注意的是:不要把一些重要的东西放在函数PDMDLLInit()中.
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-25 17:51 , Processed in 0.051275 second(s), 15 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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