机械必威体育网址

找回密码
注册会员

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
1#
发表于 2008-8-6 13:31:00 | 只看该作者 回帖奖励 | 倒序浏览 | 阅读模式
使用toolkit开发trigger的程序时,往往需要能够连续通过trigger来触发dll中的函数.( W$ z8 V" L8 h8 l/ k ]
我碰到的问题:
" F( X8 x, X1 `, n" P0 B& T1.配置trigger:
& d4 g7 Y+ o' bName: CimDll* X8 v. R! c/ B) e! f
Event: Create PIV
4 S7 K, Y( z) o& J5 {2 W# @3 j/ \Time: POST" Z& n( Y6 P: m" W$ z
RequireNO9 R( x x( r4 C* c- o
DLL:Cim.dll
; y) I' `4 K% Y7 Y( o) p. L1 fFunctionDMTPIVCreatePostOperation5 c6 H/ {, r" b2 L& ~4 e
5 E/ L3 ~+ h! P6 i; r5 u4 w5 |
2.源代码:
* s p' o' q7 j/ I) e! Dint PDMDLLInit(); ^0 `( Y6 U4 }' k* \* D
{& [: L$ i+ l) B9 O4 T
PTCERROR pdm_status;
7 Z# x7 d7 P4 A; fFILE *g_pfileLog; g_pfileLog =fopen("test.dat","w");
! T- K9 ^4 y+ T4 E& o2 W* Ssetbuf(g_pfileLog,NULL);+ q. o [ o# l6 b
fprintf(g_pfileLog,"begin test\n");
# G. n: f" N# `1 j8 W8 Ppdm_status = PDMTriggerRegister("DMTPIVCreatePostOperation", PDMTPIVCreatePostOperation);
/ M0 k6 R3 I& b9 ^" d- I. z8 x( A% Yif (pdm_status != PDM_SUCCESS)$ Z5 o+ F( s8 ]# W# I4 b
{
3 U" M$ H- T; l8 p2 I' h0 L! Oprintf("Failed to Register Trigger PIV Create Post.\n");
! A' K& w& V9 E2 F9 F: [: w* D}
4 z( S" |( u+ Z' ^. Mreturn (pdm_status);
/ X8 o8 w2 C0 {: E}5 n8 J: E) v. d+ C9 Y- {. n
int PDMTPIVCreatePostOperation(int argc, void **argv)9 z4 T/ R$ f* N y( L, J
{, |! e( R, y* A9 Z
fprintf(g_pfileLog,"test\n");7 Z2 U) o2 T1 M9 S: p# T j
.....
: ?/ }5 v: p' q( F& j% j/ ~1 L- @( Zfprintf(g_pfileLog,"end test\n");
+ \+ S8 j4 M' G" G. A" s7 Lfclose(g_pfileLog);' \+ z" Z$ L% j" @, y4 l3 [# J7 x
}. {7 r9 b: \, X0 |+ Z, }7 x
结果:以上代码存在的问题:如果我们在第一次checkin到C/S中后,删除test.dat文件,然后再进行checkin时,发现没有再生成test.dat,在函数PDMTPIVCreatePostOperation()中所进行的对文件的操作都无效.; d2 J$ R6 }! v& d/ d% B
原因:我们使用trigger触发时,真正起作用的是函数DMTPIVCreatePostOperation(),而PDMDLLInit()只是在第一次checkin时起作用,所以在第一次调用PDMTPIVCreatePostOperation()后,我就fclose(g_pfileLog),所以出现了上面的情况.所以注意的是:不要把一些重要的东西放在函数PDMDLLInit()中.
您需要登录后才可以回帖 登录| 注册会员

本版积分规则

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

GMT+8, 2024-7-3 00:52, Processed in 0.049166 second(s), 14 queries , Gzip On.

Powered byDiscuz!X3.4Licensed

? 2001-2017Comsenz Inc.

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