私はC DLLからC#に関数をインポートしようとしています。 C#のインポートはC#では、このC#dllインポート関数が正しく
[DllImport("sslib32.dll", CharSet = CharSet.Ansi, SetLastError = true)]
private static extern ushort write_buffer(ushort deviceNumber, ushort wordCount, UInt32 bufferLink, IntPtr buffer)
のように見えるのC関数はこの
unsigned short write_buffer(unsigned short device_number, unsigned short word_count, unsigned long buffer_link, unsigned short* buffer)
私の試みのように見える私は、この関数に渡したいメッセージの辞書を持っています。ディクショナリは次のようになります。
Dictionary<string, List<ushort>> msgs
msgsをバッファに渡すための適切な呼び出しを行う方法を少し混乱させます。 deviceNumberが2であるので、私は、コールがこの
write_buffer(2,32,0, msgs[key]);
は明らかに私がのIntPtrに対して無効な引数を取得していますようになるはずです知っているWORDCOUNTは32で、buffLinkは0です。この呼び出しを行う適切な方法は何ですか?
おかげで、申し訳ありませんが質問は少し不明だったが、あなたが提供した答えは正しく動作しているようだ。 – poco