C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 113 を表示中)
■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としてエラーは出てないのですが、関数からは「不正なパラメータが渡された」というエラーが返ってきました。
これ以外にもいろいろ試してみたのですが、どれもこれも同じエラーとなります。

どこか間違っているところはありませんか?
返信 編集キー/


管理者用

- Child Tree -