我已经成功地在c#
中挂了一个dll函数[DllImport ("ftusbsrv.dll", EntryPoint="FtEnumDevices")]
public unsafe static extern bool FtEnumDevices(ref FT_SERVER_USB_DEVICE lpUsbDevices, ref ulong pulBufferSize, ref FT_ERROR_STATE lpES);
我需要传递null作为第一个参数,如下所示
FtEnumDevices(null, pulBufferSize,lpES);
我收到以下编译时错误:
参数'1':无法转换 '''参考 FebulaTechWrapper.USBOverNetWrapper.FT_SERVER_USB_DEVICE'
我需要知道:如何将null作为第一个参数传递?
答案 0 :(得分:3)
我不认为null
是您的问题 - 似乎lpEs
在您的代码中是int
,但ftusbsrv.dll
期待{{1}类型}}
您需要在C#代码中重新创建FebulaTechWrapper.USBOverNetWrapper.FT_ERROR_STATE
,以便可以将实例传递给方法而不是FT_ERROR_STATE
。
编辑:您不能将null传递给需要int
参数的方法。 ref
参数需要引用,尝试这样的事情:
ref