作者otaky (欧塔基再现)
看板Visual_Basic
标题[VB6 ] 有关 VB6 event handle 的问题
时间Wed Mar 22 02:30:39 2006
我手边有一个 VB6 的程式,想动态处理一个外部的 VBA 物件。
如果用 VB.Net 来写,我想做以下的事:
Dim oSomeObject as Object
...
On Error Goto SomeErrorHandler_
Set oSomeObject = CreateObject("SomeApplication.SomeClass")
AddHandler oSomeObject.SomeEvent, AddressOf OnSomeEvent
这段程式可以让我以"我想要的方法"处理下列例外状况:
1. 使用者的系统内可能没有 SomeApplication。
2. CreateObject 後得到的 interface 因为版本问题,可能没有 SomeEvent。
但是在 VB6 我不能用这样的方法做:
Dim WithEvents oSomeObject as SomeApplication.SomeClass
因为:
1. 程式一开始就会想连结 SomeApplication.SomeClass,如果它不存在,
会连 run 都不行。
2. 就算找到了 SomeApplication.SomeClass,也可能因为 SomeEvent 不存在,还是
连 run 都不行。
请问有没有人知道有什麽方法在 VB6 可以做到相同的事?
(我没有办法换成 .Net)
我的想法是如果 VB6 真的无解的话,我会选择用别的语言另外写一个 COM 物件
把 SomeApplication.SomeClass 事先包成 MyClass,并且由它处理上述问题。
如此 VB6 就可操作一定存在,而且介面固定的 MyClass。
只是因为有点麻烦想挣扎一下 >"<,谢谢。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.105.163.2
※ 编辑: otaky 来自: 59.105.163.2 (03/22 02:37)