| ■66712 / ) |
引数にポインタが含まれているAPIをVB.NETで読み出す |
□投稿者/ くまくま (1回)-(2013/05/18(Sat) 16:41:47)
|
分類:[VB.NET/VB2005 以降]
OSはXPで、VB2005を使用しています。
Cか何かで作成したDLLに以下のようなAPI関数があります。
ファイル名 sample.dll typedef struct{ byte ad[4]; word no; byte rev[2] }LPconf;
long LP_Open(long ID , LPconf* conf);
VB2005でこのAPIを読み出して操作をしたいのです。 以下のようなコードで呼び出しました。
Imports System.Runtime.InteropServices Module Module03 <StructLayout(LayoutKind.Sequential)> Public Structure str_conf0 <MarshalAs(UnmanagedType.ByValArray, SizeConst:=4)> Public Vadd As Byte() <MarshalAs(UnmanagedType.U2)> Public Vno As UShort <MarshalAs(UnmanagedType.ByValArray, SizeConst:=2)> Public Vrev As Byte() End Structure <DllImport("sample.dll")> _ Public Function LP_Open( _ ByVal ID As Long, ByRef conf As str_conf0) As Long End Function End Module
Formにボタンを配置して、LP_Openを実行したところ、VBとしてエラーは出てないのですが、関数からは「不正なパラメータが渡された」というエラーが返ってきました。 これ以外にもいろいろ試してみたのですが、どれもこれも同じエラーとなります。
どこか間違っているところはありませんか?
|
|