char就不用说了,先说一些wchar_t。wchar_t是Unicode字符的数据类型,它实际定义在<string.h>里: typedef unsigned short wchar_t; 不能使用类似strcpy这样的ANSI C字符串函数来处理wchar_t字符串,必须使用wcs前缀的函数,例如wcscpy。为了让编译器识别Unicode字符串,必须以在前面加一个“L”,例如: wchar_t *szTe...
} VIDEO_CAPTURE_INFO; 其中的两个字符串数组szName与szDShowID要么为空,要么为正确赋值成功,导致之后的功能无法正常运行。在纠结了一段时间后,终于把问题集中到了TCHAR上,然后我分别在sample的例子中和我自己写的程序中找到了对TCHAR的定义: #ifdef UNICODE typedef wchar_t TCHAR; #else typedef unsigned char TC...
wchar_t是Unicode字符的数据类型,它实际定义在里: typedef unsigned short wchar_t; 下面在看看TCHAR。如果你希望同时为ANSI和Unicode编译的源代码,那就要include TChar.h。TCHAR是定义在其中的一个宏,它视你是否定义了_UNICODE宏而定义成char或者wchar_t。如果你使用了TCHAR,那 么就不应该使用ANSI的strXXX函数或者U...
区别,MinGW看到的是"0xe4b8ad"和"0xe69687"(gcc默认UTF-8).注意,用MinGW编译的源文件中有中文宽字符必须保存为UTF-8编码. 2)然后,在二进制文件中的存储形式,对传统的字符串(char str[] = "中文";),编译器什么都不做,直接把那串数字(如"0xd6d0","0xcec4")搬过去塞进二进制文件. 但对于宽字符串(...