|
我是用VC的,对VB不懂,
3 e5 n& n0 Q; A* T: W2 |* W但是,不管用何种语言编程,程序机理是相通的,因此瞎掰几句# B6 G' u- j* Z+ y8 w( \. [ k8 x, g
楼主你说) h' G2 B( b5 U
“VB.NET做成的是.EXE文件,但是在.TBR中ACTIONS好像只能调用.DLL .GRP .UTD”
9 i2 q, g2 K; d" z' S; M9 f既然是UG的二次开发,就要按UG定的规矩来,
. e2 ^, u- U! |3 n- r是的,.TBR中ACTIONS只能调用.DLL .GRX .UTD' i& b1 g$ m- e6 J/ j( Q. Y
你用VB.NET做时,编译的结果按DLL去编译,我想VB.NET做DLL的这个功能绝对是有的
3 L1 s8 Q3 {! h/ ?4 E6 q+ i" j* P% A而你编VB。NET的程序里要构建一个名为ufusr()的函数,这是二次开发在UG中的入口 g; _% {8 J: i7 q7 q
即你点了二次开发的那个菜单,UG就去找该菜单对应的DLL文件里有没有ufusr(),
5 I/ |6 a* V x2 M一切的动作从那里入手的,1 s8 Y. s5 [" w3 @4 C7 b8 O' O( ]
就象编普通的C程序,要有MAIN(),你双击后,操作系统是从MAIN开始执行的* J: D1 g% K. v; m
- i0 o* @' l1 @: [1 v1 F
ufusr()是被动的入口,你不点它,它就不起作用,0 t8 }$ a/ R% g' t
那还有一个,UFSTA(),这个是主动入口,
; F: O( J4 a2 C; X- h. T) PTBR做正确了,被挂接了,UG在一启动后是自动执行TBR中所对应的程序,而执行就从UFSTA()开始
! }4 `+ W0 u7 m6 a! W
( J; i- l7 ^! B8 x至于做成.EXE文件,一般是叫异步开发,即不需要UG环境8 F/ W+ A+ N/ A# T( G8 R
EXE可以是一个普通的程序,它只不过调用了UG的功能,
* G( r) z: W9 }; l* V, W2 k1 Z比如想要批量打印UG文件,这类功能跟UG开不开没啥关系,它的对象只是UG格式文件,我想这你应该能理解
+ |1 y3 P* @7 q, p/ [- P
; d4 ` h2 z9 R& l! H解决的的方法也就大致是这样了,你要用API做同步的开发
+ _/ m( L6 T/ o9 }3 d只能在你的程序里建ufusr()或UFSTA(),让UG知道从那里入手
8 @ ~- `( w3 Y造了一所房子,四周封闭而没有门是不行的,不然人家怎么进去?
+ B/ g# t, K3 g$ S) T& h* {具体的做法你要看相关说明了
" k5 Z2 L# g8 n$ c0 a* W* A/ ?我只能说点头绪让你有点思路
- j& E8 b, C; f/ g* `0 \; ^2 |1 R5 N2 [. a3 {" q* p+ g
说的不对处,请谅解 |
|