C++ DLL にエクスポートされた関数があります。
// C++ DLL (Blarggg.dll)
extern "C"
{
USHORT ReadProperty( BYTE * messsage, USHORT length, BYTE * invokeID )
{
if( invokeID != NULL ) {
* invokeID = 10 ;
}
return 0;
}
}
自分の C# アプリケーションで利用できるようにしたい
// C# app
[DllImport("Blarggg.dll")]
public static extern System.UInt16 ReadProperty(
/* [OUT] */ System.Byte[] message,
/* [IN] */ System.UInt16 length,
/* [OUT] */ System.Byte[] invokeID );
private void DoIt()
{
System.Byte[] message = new System.Byte[2000];
System.Byte[] InvokeID = new System.Byte[1];
System.UInt16 ret = ReadProperty( message, 2000, InvokeID ); // Error
}
問題は、次のエラー メッセージが表示され続けることです。
タイプ 'System.NullReferenceException' の未処理の例外が Blarggg.dll で発生しました 追加情報: オブジェクト参照がオブジェクトのインスタンスに設定されていません。
VS2008 を使用して、DLL と C# アプリケーションの両方をビルドしています。
私は C# プログラマーではありません。
私は何を間違っていますか?