我想从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