VC++6.0 Unicode & ascii
准备卸载了Linux, 装个Windows好好学windows编程…
现在Windows里搞了个xp + vc6.0
然后照着书…敲了一个helloworld…然后…
#include "windows.h"
#include "tchar.h"
int main()
{
MessageBox(NULL,
L"Hello World!",
L"Aryb1n",
MB_OK);
return 0;
}
然后我的标题就显示一个H
….
然后我以为是Windows xp太远古了….标题栏就能显示一个字母…
然后我才发现……..
VC6.0默认处理的是ASCII, 而我存储的是Lstring…俩字节一个unicode, 所以遇到那个\x00
的时候就截止了
找了一下解决办法
- 就用普通的String…不加L前缀
- 用
TEXT("Hello world")
, 或者_TEXT
,_T
(这三个一样), 这个宏定义会根据你的环境…在ascii的时候相当于ascii的string, 在unicode的时候相当于L"String"
- 继续用LString, 在VC6.0里添加宏
UNICODE, _UNICODE
,[Project Setting] -> [General] -> [Preprocessor definitions]
这个框框里加上这俩宏