インターフェイスが必要なコードをいくつか継承しました。具体的には、C# から呼び出したい Marshaled コマンドがあります。コード呼び出しは次のようになります。
[DllImport(DLL_PATH, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
public static extern void readTable([MarshalAs(UnmanagedType.LPArray)] ushort[,] buffer);
したがって、「readTable」コマンドは多次元配列「buffer」に入力します。
私はこれをうまく行うことができませんが、これが私の(非コンパイルの)試みです。
ushort[,] myTable = new ushort[5,100]; // multidimensional array
unsafe
{
fixed (ushort* inputPtr = &myTable[0, 0])
{
readTable(inputPtr);
}
}
明らかにコンパイルしていませんが、私は初心者であり、エラーを修正できません。
私は本当に宣言したいです。
fixed(ushort[,]* inputPtr = &myTable)
しかし、それはナンセンスです。
私の窮状を理解してくれる人はいますか?ありがとうございます!