谁学过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*