■12773 / ) |
VB.NETからVC作成DLLの関数を使用する際の引数 |
□投稿者/ リバー (1回)-(2008/01/17(Thu) 13:54:18)
|
分類:[VB.NET/VB2005]
2008/01/17(Thu) 14:29:39 編集(投稿者)
初めましてリバーと申します。
現在、VB.NET2003からVC++6.0作成DLLの関数を使用することに挑戦しています。
VC作成DLLの関数の引数は1:構造体のポインタ、2:LPSTRです。 構造体: 1番目の項目の型:void* 2番目の項目の型:int 3番目の項目の型:int 4番目の項目の型:構造体A 5番目の項目の型:int 6番目の項目の型:int 7番目の項目の型:int
構造体A: 1番目の項目の型:int 2番目の項目の型:int 3番目の項目の型:int 4番目の項目の型:int 5番目の項目の型:int 6番目の項目の型:int 7番目の項目の型:int 8番目の項目の型:int 9番目の項目の型:int
VB記述内容: Public Structure 構造体 Public NoA As IntPtr Public NoB As Integer Public NoC As Integer Public NoD As 構造体A Public NoE As Integer Public NoF As Integer Public NoG As Integer End Structure
Public Structure 構造体A Public NoA As Integer Public NoB As Integer Public NoC As Integer Public NoD As Integer Public NoE As Integer Public NoF As Integer Public NoG As Integer Public NoH As Integer Public NoI As Integer End Structure
Private Declare Auto Function 関数名 Lib "DLL名フルパス" _ (ByRef _構造体 As 構造体, ByVal LpStr As String) As Long
Public Sub test() Dim _構造体 As New 構造体 Dim _構造体A As New 構造体A Dim 戻り値用変数 As Long 構造体、構造体Aの値設定
戻り値用変数 = 関数名(構造体, "文字列")
End Sub
上記のようにプログラムを記述しています。 関数の呼び出しは成功していますが、 関数の戻り値が想定外の値になって返ってきます。 構造体の1番目の項目の型:void*をVB側でIntPtr型で 宣言している箇所が怪しいと考えていますが、 実際どこが間違っていてどう修正するべきかわかりません。
上記プログラムについて間違っている箇所、修正するべき箇所について ご指摘を宜しくお願い致します。
|
|