string GetName() { char szUser[80]; DWORD cbUser = 80; if (GetUserName ((LPWSTR)szUser, &cbUser)) return szUser; else return ("GetUserName failed.\n"); } bool ver() { cout<<GetName()<<endl; return true; }
这里只会显示名称的第一个字母。
假如把szuser改成LPWSTR就会报错
解决方案
10
char -> wchar_t
string -> wstring
string -> wstring
20
TCHAR szUser[80];
20
或把LPWSTR 改成 LPSTR,然后:
点菜单“Project -> xxx Properties…”(或右击项目名称,选择 Properties,或按 Alt + F7 也可以打开项目属性),点左侧的“Configuration Properties”,在右侧的设置中找到“Character Set”,修改默认的“Use Unicode Character Set”为“Use Multi-Byte Character Set”。
仅供参考:
Unicode:宽字节字符集
http://blog.163.com/tab_98/blog/static/1192409720159230535498/
点菜单“Project -> xxx Properties…”(或右击项目名称,选择 Properties,或按 Alt + F7 也可以打开项目属性),点左侧的“Configuration Properties”,在右侧的设置中找到“Character Set”,修改默认的“Use Unicode Character Set”为“Use Multi-Byte Character Set”。
仅供参考:
Unicode:宽字节字符集
http://blog.163.com/tab_98/blog/static/1192409720159230535498/