|
我是用VC的,对VB不懂,: b+ x [( M H$ R9 M; w
但是,不管用何种语言编程,程序机理是相通的,因此瞎掰几句
! T+ ^7 O/ f+ h1 Y+ S' ^0 C5 o 楼主你说7 G9 m. h2 l% Q" l4 u* `; s1 H
“VB.NET做成的是.EXE文件,但是在.TBR中ACTIONS好像只能调用.DLL .GRP .UTD”' l2 d3 p9 S) l5 y5 _
既然是UG的二次开发,就要按UG定的规矩来,8 g `9 V$ Z* H* A/ V/ L
是的,.TBR中ACTIONS只能调用.DLL .GRX .UTD! G( x6 V1 g5 V) A, {4 r( g F
你用VB.NET做时,编译的结果按DLL去编译,我想VB.NET做DLL的这个功能绝对是有的
3 L% ] ^! g8 @. N: o而你编VB。NET的程序里要构建一个名为ufusr()的函数,这是二次开发在UG中的入口# z) V1 \% ~: u
即你点了二次开发的那个菜单,UG就去找该菜单对应的DLL文件里有没有ufusr(),0 J& n! P) \: s: Y0 i
一切的动作从那里入手的,: k) H4 M; f! Y* v( y
就象编普通的C程序,要有MAIN(),你双击后,操作系统是从MAIN开始执行的
. m& [' w) F9 A7 B) z4 n5 r0 M3 F
; |2 L0 r, E! d# G5 Uufusr()是被动的入口,你不点它,它就不起作用,
( h" h' X% [- j% ~8 S那还有一个,UFSTA(),这个是主动入口,% w( H# n @6 W' S1 m
TBR做正确了,被挂接了,UG在一启动后是自动执行TBR中所对应的程序,而执行就从UFSTA()开始$ F8 ^( X5 R, r! p, c! S
4 {4 r9 f' \3 q' @4 j6 Z) i5 @至于做成.EXE文件,一般是叫异步开发,即不需要UG环境
: n8 }. A" X8 mEXE可以是一个普通的程序,它只不过调用了UG的功能,
* ?: e9 y' b0 i- S, L比如想要批量打印UG文件,这类功能跟UG开不开没啥关系,它的对象只是UG格式文件,我想这你应该能理解) F0 l% U1 I7 A e
2 N- p- k+ M% J5 z0 h: P
解决的的方法也就大致是这样了,你要用API做同步的开发
6 s" {+ D9 Z9 I" m/ U2 [9 |0 `只能在你的程序里建ufusr()或UFSTA(),让UG知道从那里入手( m( }; a y5 k% J' k, W# Y ]
造了一所房子,四周封闭而没有门是不行的,不然人家怎么进去?
4 W L! \1 T; C1 M具体的做法你要看相关说明了& d& P+ l8 @6 ^# J/ |3 m
我只能说点头绪让你有点思路; C1 D1 q8 O; Q* u4 e/ S0 K. R' {" o
: ~( b' f5 C3 s$ J G说的不对处,请谅解 |
|