[DllImport("USBIOX.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
public static extern ulong USBIO_GetVersion();
获得DLL版本号是可以的, 版本号 6959871503894577177 ulong
[DllImport("USBIOX.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
public unsafe static extern IntPtr USBIO_OpenDevice(ulong iIndex);
打开CH341设备,返回句柄 总是出现
调用导致堆栈不对称。原因可能是托管的 PInvoke 签名与非托管的目标签名不匹配。请检查 PInvoke 签名的调用约定和参数与非托管的目标签名是否匹配。
IntPtr 换成void* 也一样,StdCall换成Cdecl 也一样,ulong换成uint64也一样
我应该怎么用啊?~~~~~~~~
参考例程C代码:
HANDLE WINAPI USBIO_OpenDevice( // 打开CH341设备,返回句柄,出错则无效
ULONG iIndex ); // 指定CH341设备序号,0对应第一个设备
搜索查了说HANDLE 可用IntPtr 直接代替