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
@GTG、私は実際にOCXのメソッドを呼び出すプロパティを設定した後に、OCXのプロパティを設定する必要があります。計算のためだけに、フォーム上に視覚的なプレゼンテーションがありません。 – Siddiqui
通常の遅延バインディングを試したことがありますか?Dim myObjectをオブジェクトセットとして設定しましたmyObject = createobject( "yourlib.yourclass")versionString = myObject.TheVersionProperty – GTG