[求助]CH341A USBIOX.DLL C#调用的问题

        [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 直接代替

一天了都没人回...

可以了

         [DllImport("USBIOX.dll")]
        public static extern bool USBIO_WriteI2C(IntPtr iIndex, byte iDevice, byte iAddr, byte iByte);


有程序嘛,我也是出现上面的错误


您好:

  邮件中所述的并非是我们提供的DLL,建议直接使用我们提供的C#例程做开发。具体见如下链接地址:http://wch.cn/bbs/thread-66775-1.html 


只有登录才能回复,可以选择微信账号登录