找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 1746|回复: 0

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

[复制链接]
发表于 2008-8-6 13:31:00 | 显示全部楼层 |阅读模式
使用toolkit开发trigger的程序时,往往需要能够连续通过trigger来触发dll中的函数.
" e9 B) j" W9 a- V/ r* P/ T我碰到的问题: - }$ S+ Z8 k7 M0 _8 ?* Z
   1.配置trigger:
+ m+ A; d+ |' g- `/ c2 p# R1 [   Name: CimDll
4 a7 Z% @6 t9 K0 z1 C   Event: Create PIV 5 D" m0 m& C4 B5 J- z
   Time:  POST
5 v: q6 _: O( @" c5 I3 D" c   RequireNO
8 {$ S3 X1 o+ ]   DLL:Cim.dll
. W3 G3 }" B# f" ~- w" g   FunctionDMTPIVCreatePostOperation
* C6 p1 h9 [2 M: B# b$ X; r: O    & W9 O7 `+ W' L! r$ l, s% `( B
  2.源代码: ' v, V# F" ?" W8 h) C
   int PDMDLLInit() . y0 _+ A  C4 o) Q- T9 y' b
{
: C) I  f, _+ y, D& f# v$ o   PTCERROR pdm_status;
0 O# o* r  P0 o( r8 k, {; W1 s   FILE      *g_pfileLog;    g_pfileLog =fopen("test.dat","w"); 5 ]' g; J- b1 z5 {) j
   setbuf(g_pfileLog,NULL);
/ @0 M7 Z# h0 ^& u. q5 Z5 d; c   fprintf(g_pfileLog,"begin test\n");
0 W' E1 G) q/ {, W  T: f: N) F7 N   pdm_status = PDMTriggerRegister("DMTPIVCreatePostOperation", PDMTPIVCreatePostOperation); * {! H- K. u4 g8 m. k
   if (pdm_status != PDM_SUCCESS)
2 N7 D- b0 h% c% R* a+ \   {   0 F' U  @+ D, d( L4 p8 o6 M
    printf("Failed to Register Trigger PIV Create Post.\n");
; B5 {: n8 B9 E8 F- X" W6 v   }
3 c$ ]8 t! T2 l7 `: t; w    return (pdm_status);
4 \% C2 i, J; T( e: b1 s} 6 A4 [: ]/ H+ g
int PDMTPIVCreatePostOperation(int argc, void **argv)
5 f, {2 V( C3 q- G' n2 r4 s: [2 c{
- x/ s& f5 t7 p! q   fprintf(g_pfileLog,"test\n"); , j  N/ p  H, \0 e: p( l! @
   .....
% [8 ]" A3 \. P   fprintf(g_pfileLog,"end test\n"); # T, r3 j# b+ Y( w8 ]. _
   fclose(g_pfileLog); * v7 n) M. K! O7 X6 O
} . k+ S$ b9 v8 y% T$ a
   结果:以上代码存在的问题:如果我们在第一次checkin到C/S中后,删除test.dat文件,然后再进行checkin时,发现没有再生成test.dat,在函数PDMTPIVCreatePostOperation()中所进行的对文件的操作都无效. 5 E+ U" _1 I1 d6 S
   原因:我们使用trigger触发时,真正起作用的是函数DMTPIVCreatePostOperation(),而PDMDLLInit()只是在第一次checkin时起作用,所以在第一次调用PDMTPIVCreatePostOperation()后,我就fclose(g_pfileLog),所以出现了上面的情况.所以注意的是:不要把一些重要的东西放在函数PDMDLLInit()中.
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-1 17:08 , Processed in 0.057661 second(s), 14 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

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