アンマネージDLLからC#に関数をインポートしています。C++関数のシグネチャは次のとおりです
int RF_PowerOnEx(int nDev, int nCardType, DWORD* pdwRXSize, BYTE* lpbRXData)
次のようにインポートしています
[DllImport("TP9000.dll")]
public static extern int RF_PowerOnEx(int nDev, int nCardType, out int pdwRXSize, out byte[] lpbRXData);
ただし、そうするとSystem.AccessViolationExceptionが発生します。この特定の関数を除く他の関数を正常にインポートしました。pdwRXSizeとlpbRXDataの両方が出力として扱われます。整数とバッファが初期化されてから、関数に渡され、関数がバッファをいっぱいにします。ヘルプ!!!!入力パラメータをDLLに渡すことはできるようですが、出力パラメータを取得できません。Stringbuilderオブジェクトを渡してみましたが無駄になりました。誰か助けてもらえますか?ありがとう!
編集:タイプミス