编译成ASCII码,加上_T()或TEXT()变成UNICODE

来源:互联网 发布:linux 获取系统时区 编辑:程序博客网 时间:2024/03/29 16:31
无TEXT(“”)的在编译时 编译成ASCII码,加上_T()或TEXT()变成UNICODE
TCHART *sz = L"Error" ; 
//前面需要添加一个L,告诉编译器应该作为Unicode字符串来编译,Unicode编码每个字符16位,ANSI编码一个字节8位

Windows98只支持ANSI,
Windows2000既支持Unicode也支持ANSI;
Windows CE只支持Unicode

_UNICODE宏用于C运行期头文件,而UNICODE宏则用于Windows头文件。当编译源代码模
时,通常必须同时定义这两个宏。

    CreateWindowExW是接受Unicode字符串的函数版本。函数名结尾处的大写字母W是英
文wide(宽)的缩写。每个Unicode字符的长度是1 6位,因此,它们常常称为宽字符。Cre
ateWindowExA的结尾处的大写字母A表示该函数可以接受ANSI字符串。

    通常只包含了对CreateWindowEx调用,而不是直接调用CreateWindowExW或者CreateWindowExA,在WinUser.h文件中,CreateWindowEx实际上是定义为下面这种形式的一个宏:
#ifdef UNICODE
#define CreateWindowEx  CreateWindowExW
#else
#define CreateWindowEx  CreateWindowExA
#endif
UNICODE字符串数组    sizeof(szBuffer)/sizeof(TCHAR)   
malloc(n*sizeof(TCHAR))//按字节分配内存块














0 0
原创粉丝点击