C# アプリケーションから、VC++ DLL からエクスポートされた関数に InParameter を渡す必要があります。この関数は 2 つのパラメーターを受け入れます。
int func_name (FILE* fp, BYTE& by);
fp
In およびby
Out パラメータです。
IntPtr
forFILE*
を使用し、 byte を使用してマーシャリングすることを考えていましたBYTE
。それが正しいか?C#で次のように書くと
[DllImport("name_of_project.dll", CharSet = CharSet.Ansi)] public static extern int func_name(IntPtr FilePointer, [MarshalAs(UnmanagedType.BYTE&)] byte by);
それはうまくいきますか?マーシャリングステートメントの「&」記号でエラーが発生すると思います。out パラメーターを参照渡しするにはどうすればよいですか?
どうぞよろしくお願いいたします。
ありがとう、ヴィレン