我有一个通过 C DLL 与 USB 外围设备通信的 C# 应用程序。
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^'。其余的字符串很好。我玩过编码类型,但似乎仍然有问题。
感谢 Anand