机械必威体育网址

 找回密码
 注册会员

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
1#
发表于 2008-8-6 13:31:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
使用toolkit开发trigger的程序时,往往需要能够连续通过trigger来触发dll中的函数. / U3 l' f" v6 @( `2 M4 N- U! M
我碰到的问题: 2 L! u; s1 b8 U2 ?' B( x
   1.配置trigger:
- b# x* l3 H/ t7 }   Name: CimDll % `( P$ O" Y1 {7 M' Z$ j1 d
   Event: Create PIV 1 {/ F9 n9 M7 q) B- d) _: {. {
   Time:  POST
) K% v' ?3 o5 ?" E   RequireNO
9 n1 h5 s: a8 v! j% r3 O   DLL:Cim.dll - U6 W% f# i4 {9 {" t, Y7 [' c" |) i) ^
   FunctionDMTPIVCreatePostOperation 6 u3 |% {$ B4 S- i# j& d
    1 _8 y2 `7 q! R% s1 V5 c; {; B3 r3 m
  2.源代码: / Z+ Y* h( ~3 Q
   int PDMDLLInit() " X- }" ^: }1 P5 ]# g- `, A: r
{ # ~: d5 c3 R( p2 j6 G- y. t& ?
   PTCERROR pdm_status;
$ t4 ~- H# o( P2 F   FILE      *g_pfileLog;    g_pfileLog =fopen("test.dat","w"); 4 ~( h' s# H5 W
   setbuf(g_pfileLog,NULL); 6 ^+ g: F& l( ~& p5 |" O
   fprintf(g_pfileLog,"begin test\n");
* e. N7 {8 E7 y/ ~0 W0 Z   pdm_status = PDMTriggerRegister("DMTPIVCreatePostOperation", PDMTPIVCreatePostOperation); ! [7 d+ z# h  {) Q2 Y2 R
   if (pdm_status != PDM_SUCCESS) * D* ]/ o" ^8 F& c# b
   {   " p4 Q% Y  \5 k" m% L1 S
    printf("Failed to Register Trigger PIV Create Post.\n");
5 M& E* J* k1 u  S2 b, b" j+ Y   }
4 Q, J. |' @2 }* U" g& A+ ^( ?    return (pdm_status); 5 U1 S3 ]- M! z4 \5 W4 \, B
}
0 g0 d! m- C: tint PDMTPIVCreatePostOperation(int argc, void **argv) 4 W0 m8 q! k9 W' B
{
  \. {; @& {2 c& W9 h   fprintf(g_pfileLog,"test\n"); 4 X7 j' r  v  I6 M0 ?
   ..... - @0 N" j4 o7 Y8 _, @) F- H
   fprintf(g_pfileLog,"end test\n"); 7 V) K% a$ r1 w8 x
   fclose(g_pfileLog); - i; ~4 T/ L% L1 x  K) d
}
$ {+ t/ X1 E6 }7 p   结果:以上代码存在的问题:如果我们在第一次checkin到C/S中后,删除test.dat文件,然后再进行checkin时,发现没有再生成test.dat,在函数PDMTPIVCreatePostOperation()中所进行的对文件的操作都无效. 4 J1 c/ a+ A4 X  y( l" S2 z
   原因:我们使用trigger触发时,真正起作用的是函数DMTPIVCreatePostOperation(),而PDMDLLInit()只是在第一次checkin时起作用,所以在第一次调用PDMTPIVCreatePostOperation()后,我就fclose(g_pfileLog),所以出现了上面的情况.所以注意的是:不要把一些重要的东西放在函数PDMDLLInit()中.
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-25 23:08 , Processed in 0.044367 second(s), 14 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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