如何在VS2010 c#项目中使用最新的DLL

时间:2014-11-06 08:52:04

标签: c# visual-studio-2010 dll

我需要在最新的VS2010 c#项目中引用最旧的DLL(而不是.Net DLL)。 DLL文档显示了如何使用ReadObject函数:

MyDll rc = ReadObject(HEQUIP hEquip,             UCHAR uchSegment,             UCHAR uchType,             USHORT usFirst,             USHORT usQty,             PUCHAR pValue);

还展示了如何在VB6项目中使用:

声明函数ReadObject Lib“MyDll.dll”(ByVal DriverId As Integer,ByVal uchSegment as Byte,ByVal uchType as Byte,ByVal usFirst As Integer,ByVal usQty as Integer,ByRef pValue as Any)

任何人都可以解释我如何在c#项目中引用DLL?关键词“ByVal”和“ByRef”对c#语言的正确转换是什么? 非常感谢任何建议

Jumpier

1 个答案:

答案 0 :(得分:0)

我认为最早的DLL"你的意思是一个本机DLL。为此,您需要使用P/Invoke

确保DLL位于系统可以找到它的位置。然后,导入如下函数:

[DllImport("MyDll.dll"])
private static int ReadObject(...);

您需要使用上面链接教程中列出的约定传递参数。我的第一枪就是:

[DllImport("MyDll.dll"])
private static int ReadObject(int driverId, byte segment, byte type, int first, int qty, ref byte value);

ByValByRef在C#中无效。您需要省略ByVal并将ByRef更改为ref