????????[DllImport("USBIOX.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
??????? public static extern ulong USBIO_GetVersion();
?獲得DLL版本號(hào)是可以的,??版本號(hào)?6959871503894577177?ulong
?
?????????[DllImport("USBIOX.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
??????? public unsafe static extern IntPtr USBIO_OpenDevice(ulong iIndex);
打開(kāi)CH341設(shè)備,返回句柄 總是出現(xiàn)
調(diào)用導(dǎo)致堆棧不對(duì)稱(chēng)。原因可能是托管的 PInvoke 簽名與非托管的目標(biāo)簽名不匹配。請(qǐng)檢查 PInvoke 簽名的調(diào)用約定和參數(shù)與非托管的目標(biāo)簽名是否匹配。
?
IntPtr 換成void* 也一樣,StdCall換成Cdecl 也一樣,ulong換成uint64也一樣
我應(yīng)該怎么用啊?~~~~~~~~
?
參考例程C代碼:
HANDLE?WINAPI?USBIO_OpenDevice(? // 打開(kāi)CH341設(shè)備,返回句柄,出錯(cuò)則無(wú)效
?ULONG???iIndex );? // 指定CH341設(shè)備序號(hào),0對(duì)應(yīng)第一個(gè)設(shè)備
搜索查了說(shuō)HANDLE? 可用IntPtr 直接代替