我想從c dll導入一個函數到C#中。 C函數看起來像這樣正確的C#dll導入功能
unsigned short write_buffer(unsigned short device_number, unsigned short word_count, unsigned long buffer_link, unsigned short* buffer)
我在C#進口嘗試看起來像這樣
[DllImport("sslib32.dll", CharSet = CharSet.Ansi, SetLastError = true)]
private static extern ushort write_buffer(ushort deviceNumber, ushort wordCount, UInt32 bufferLink, IntPtr buffer)
在C#我有我想傳遞給這個函數消息的字典。字典看起來像這樣:
Dictionary<string, List<ushort>> msgs
我有點困惑如何使一個適當的調用傳遞消息作爲緩衝區。 deviceNumber爲2,是的wordCount 32和buffLink爲0,所以我知道調用應該是這個樣子
write_buffer(2,32,0, msgs[key]);
顯然,我得到了IntPtr的無效參數。打這個電話的正確方法是什麼?
謝謝,對不起,問題有點不清楚,但你提供的答案似乎工作正常。 – poco 2011-01-05 18:55:11