小弟目前做一个东东,要自己用VB 6 开发DLL;可是问题如下:
1、Module 中的方法与变量无法被其他项目引用参考(VB 6 IDE中F2中没有这些Module出现, 在Global中没有Module的这些变量,
所以这些Module中的变量只能在自己的DLL工程中引用。
2 若把 Module 中的 属性,方法迁移到Class中,并把Class的instancing 属性设置为: GlobalMultiUse,则与上相反:只能在其他工程中引用,而无法在该DLL工程中直接引用(不进行Class实例化而直接使用其成员)请大侠指点一二!
1、Module 中的方法与变量无法被其他项目引用参考(VB 6 IDE中F2中没有这些Module出现, 在Global中没有Module的这些变量,
所以这些Module中的变量只能在自己的DLL工程中引用。
2 若把 Module 中的 属性,方法迁移到Class中,并把Class的instancing 属性设置为: GlobalMultiUse,则与上相反:只能在其他工程中引用,而无法在该DLL工程中直接引用(不进行Class实例化而直接使用其成员)请大侠指点一二!
Public g_Name as string'GlobalMultiUse Class
Public Property Get Name() as string
Name = g_Name
end property
Public Property Let Name(byval RHS as string)
g_Name = RHS
end property
public static property get oMyObject() as MyObject ' 假如这个类为 MyClass
dim value as New MyObject
set oMyObject = value
end property
其他工程 创建 MyClass或再获取 MyObject属性 与 在我的DLL工程new MyClass 后获取的MyObject 是否是同一个引用?是的话我就可以按 最开始提问中的第二种方式使用了,若不是就麻烦了。能否再度释疑?
Module 中的 Property 是具体实现,Class 的中 Property 只是为了外部的调用而进行的封装。
封装通常就是这种一条语句进行调用传递,很公式化的做法。2)这是在 tlb 中定义的 Module,与 VB 的 Module 不是同一个。3)每个 MyClass 实例的 Static 变量是独立的,要全局共享实例就用模块的全局变量
'Module
Public g_MyObject as MyObject'GlobalMultiUse Class
Public Property Get oMyObject() as MyObject
If g_MyObject Is Nothing Then
Set g_MyObject = New MyObject
End If
Set oMyObject = g_MyObject
end property
现在则最大限度的把代码转移到DLL中,进行业务逻辑保密!!再次 Thanks!!!