Converting TCHAR to string in C++
我正在尝试将TCHAR转换为字符串,如下所示:
1 2 3 | std::string mypath; TCHAR path[MAX_PATH]; GetModuleFileName( NULL, path, MAX_PATH ); |
我需要将
我是C ++的新手,但是已经做了大量的C#。 我已经看过
TCHAR是定义为char或wchar的宏,具体取决于您定义的字符集。 2008年之后的默认值是将字符设置为unicode。如果您更改字符集,则此代码有效。
1 2 3 4 5 | int _tmain(int argc, _TCHAR* argv[]) { TCHAR* bob ="hi"; string s = bob; } |
右键单击项目设置并更改以下内容
如果要使用TCHAR作为Unicode字符集,请使用wstring
当我真的需要这样做时,请使用以下命令:
1 2 | TCHAR infoBuf[32767]; GetWindowsDirectory(infoBuf, 32767); |
然后将其转换为可以转换为标准
1 2 | wstring test(&infoBuf[0]); //convert to wstring string test2(test.begin(), test.end()); //and convert to string. |
如果要使用chars作为路径,则应调用
请注意,几乎所有使用或返回字符串的Win32函数都有两个版本,一个以
您还可以使用
http://msdn.microsoft.com/zh-CN/library/5d7tc9zw%28v=vs.80%29.aspx
您好,这是一个较晚的答案,但我有个主意。
1 2 3 4 | {wstring test = User; std::wcout << test << std::endl; string test2(test.begin(), test.end()); std::cout << test2 << std::endl;} |
在此示例中,用户是用户名
现在,我可以将名称用作
这是将