我的任务是编写一个vb.net库与一块vb6应用程序进行交互。该VB6应用程序提供了一些不受管理的com dll。
我创建了Interop类型(通过使用TLBIMP),并将其添加为我的VB.NET项目中的参考。
好吧,还有一个现有的旧VB6项目(库),它也引用了(本地)com dll,让我们称呼它们 COM1.dll
,COM2.dll
和COM3.dll
。这个旧项目的"类模块"称为 claMod
,在此执行以下操作:
Option Explicit
Public Property Set GlobalProp(oObj As claClass1)
Set COM1.MyPointer = oObj
Set COM2.MyPointer = oObj
End Property
其中claClass1
是COM3
中的一类,COM1.MyPointer
和COM2.MyPointer
是类型System.IntPtr
。
我的问题是:如何在不声明相应对象的情况下设置这两个指针(COM1和COM2的实例)?其次,我该如何在我的新vb.net库中执行相同的操作?
允许参考com1和com2的参考,而无需特别实例化,请将每个类的即刻属性设置为GlobalMultiuse。然后,您在帖子中使用的代码将不必创建对其的参考。
在VB6环境中已经运行了许多此类对象。Screen
对象是一个熟悉的示例。
这基本与在vb.net中声明Shared
类或C#中的static
类相同。