我在VB 6.0中动态加载OCX。在VB 6.0中动态加载OCX
下面是我使用的加载并调用该方法的代码:
Private Declare Function FreeLibrary Lib "kernel32" (ByVal hLibModule As Long) As Long
Private Declare Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long
Private Declare Function GetProcAddress Lib "kernel32" (ByVal hModule As Long, ByVal lpProcName As String) As Long
Private Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal Msg As Any, ByVal wParam As Any, ByVal lParam As Any) As Long
Private Sub Foo
On Error Resume Next
Dim lb As Long, pa As Long
Dim versionString As String
Dim retValue as Long
lb = LoadLibrary("D:\projects\other\VB_DLLs\TestDLL\TestDLL.dll")
'retrieve the address of getVersion'
pa = GetProcAddress(lb, "getVersion")
'Call the getVersion function'
retValue = CallWindowProc (pa, Me.hWnd, "I want my version", ByVal 0&, ByVal 0&)
'release the library'
FreeLibrary lb
End Sub
现在我要访问OCX的公共属性。我如何访问(获取/设置)OCX的属性?
这里您的目标是什么?一个OCX通常是一个将被显示为表单上的可见控件的控件。你的代码表明你正在加载一个DLL,没有任何视觉表现,并且想以后期风格调用它。 – GTG 2012-03-30 07:47:37
@GTG,我想确定OCX的属性后,我想设置OCX的属性。没有形式的视觉呈现,只是为了计算。 – Siddiqui 2012-03-30 07:55:30
您是否尝试了正常的后期绑定,如下所示:Dim myObject as object set myObject = createobject(“yourlib.yourclass”)versionString = myObject.TheVersionProperty – GTG 2012-03-30 08:05:10