机械必威体育网址

 找回密码
 注册会员

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
1#
发表于 2008-8-6 13:31:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
使用toolkit开发trigger的程序时,往往需要能够连续通过trigger来触发dll中的函数. $ v! g% F5 n" Y2 X
我碰到的问题: 5 d8 Z+ i! A+ R- i, o
   1.配置trigger:
' _. H) `$ v$ r0 g1 Z9 S   Name: CimDll ) @& r7 ^6 y0 h7 y0 {: X
   Event: Create PIV
* t3 X) H' C5 H' n) G3 d  `   Time:  POST
; ~* R5 X; b( l2 `   RequireNO
! ?6 C7 w  V& L, c* e3 v( |! z   DLL:Cim.dll " b  }/ t% l# P
   FunctionDMTPIVCreatePostOperation
- m' |: m' `+ I6 \4 U. G. X    4 \( K7 s& C* P. w; u. [4 W, q
  2.源代码: & e5 b! V8 ^; D+ b& h
   int PDMDLLInit()   m) Z1 d7 G  ^/ c3 m4 @4 y
{   z  R: Y; A/ |
   PTCERROR pdm_status;
2 j% g0 M7 d/ h' m   FILE      *g_pfileLog;    g_pfileLog =fopen("test.dat","w"); / C: `8 G) B6 I* |1 O
   setbuf(g_pfileLog,NULL); 9 \8 C5 N) D: m! _$ K5 \6 B3 M1 P
   fprintf(g_pfileLog,"begin test\n");
, }; q: x2 T7 O" P   pdm_status = PDMTriggerRegister("DMTPIVCreatePostOperation", PDMTPIVCreatePostOperation);
: E( r- _% R9 ~' `: ]. j   if (pdm_status != PDM_SUCCESS)
5 v* g. Y0 O. c7 y" ~   {   ' ?: H7 ?4 Q" e# \8 |
    printf("Failed to Register Trigger PIV Create Post.\n"); 7 F% K' s) k/ {
   }
; v; a9 N( x9 ?$ ]3 _! Z5 ?    return (pdm_status);
9 O  Y3 K, f2 ?& y3 E( k# y* l} 8 U8 C  X# n5 q1 a' o
int PDMTPIVCreatePostOperation(int argc, void **argv) 2 R2 p' ^4 [, `) p
{ & i8 S6 q! W/ a; X$ t
   fprintf(g_pfileLog,"test\n"); + i. I$ U# ^& a% g2 n; [+ a2 R
   ..... # H4 v9 h. h$ {7 d
   fprintf(g_pfileLog,"end test\n"); % f: T* |$ i( |
   fclose(g_pfileLog); 6 z" ]7 K6 B( v
}
2 x' t% i' S. n  o- j$ G) F5 p% x   结果:以上代码存在的问题:如果我们在第一次checkin到C/S中后,删除test.dat文件,然后再进行checkin时,发现没有再生成test.dat,在函数PDMTPIVCreatePostOperation()中所进行的对文件的操作都无效. 6 o' }4 t; S0 S( H: L, m
   原因:我们使用trigger触发时,真正起作用的是函数DMTPIVCreatePostOperation(),而PDMDLLInit()只是在第一次checkin时起作用,所以在第一次调用PDMTPIVCreatePostOperation()后,我就fclose(g_pfileLog),所以出现了上面的情况.所以注意的是:不要把一些重要的东西放在函数PDMDLLInit()中.
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-6 19:15 , Processed in 0.044553 second(s), 14 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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