3
我有一個C#應用程序通過C DLL與USB外設通信。如何將包含擴展ascii字符的字符串傳遞給非託管C++ dll
的C DLL實現了一個功能:
long WriteText(char* data, long length);
如果從C/C調用此++我可以向它發送普通的ASCII文本但也有一些擴展字符,如 '£'(爲0x9c十六進制)。
不過,我有一個C#類
[DllImport("c:\\USBPD.DLL", EntryPoint = "WriteText")]
public static extern int WriteText(string data, int length);
但是這個包裹起來,當我用它發送一個字符串「£」我得到它「U ^」的地方。其餘的字符串很好。我玩過編碼類型,但似乎仍然有問題。
感謝 阿南德
C函數在其char * data參數中需要什麼編碼? – 2012-04-11 17:05:30
我很確定它是ASCII - 但沒有源代碼,因爲dll是作爲硬件提供程序的二進制驅動程序分發的。 – Nigma 2012-04-11 17:30:05