谁学过C/C++,我问个C#的char类型的问题
C#书上说一个char类型是Unicode字符,占两个字节。然后我声明了下面一个数组
char[] sou = { '飞', '2', '3', '\0' };
之后在VC中创建一个DLL,这个DLL必须用 char* 接收上面的字符串才能正确用MessageBoxA输出,如果用wchar_t*接收在用MessageBoxW输出就是乱码
C#的string类型也是一样的现象
[解决办法]
.Net里面的char和c++里面的char是不一样的。看来你是需要做转换才可以正常显示的。
[解决办法]
[DllImport("user32.dll", CharSet=CharSet.Auto)]
static extern int MessageBox(IntPtr hWnd, String text, String caption, int options);
[解决办法]
Marshal.StringToHGlobalAnsi(string)
返回的IntPrt就是一个能被MessageBoxA接受的char*