将c dll函数导入c#

时间:2010-12-27 19:04:08

标签: c# dll import

我正在尝试使用C#中的一个函数来自一个无人的C dll。我是C#的新手,不确定我是否正确地做到了这一点。 C中的函数看起来像这样:

unsigned short Function(unsigned short, unsigned long, unsigned long, unsigned short*);


[DllImport("cDLLfile.dll", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)]
private static extern short Function(ushort a, UInt32 b, UInt32 c, IntPtr buffer);

缓冲区是一个类似

的数组
ushort[] = new ushort[7];

我填充数组然后尝试将其传递给Function并收到错误。我知道IntPtr不对。这样做的正确方法是什么?

3 个答案:

答案 0 :(得分:2)

它应该与ushort []

一起使用
[DllImport("cDLLfile.dll", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true) ]
private static extern short Function(ushort a, UInt32 b, UInt32 c, ushort[] buffer);

答案 1 :(得分:0)

试试这个:

extern short Function(ushort a, UInt32 b, UInt32 c, ushort[] buffer)

答案 2 :(得分:0)

Here您将找到有关如何编组数组的详细信息和示例代码。