【发布时间】:2017-10-31 23:05:48
【问题描述】:
我想调用一个函数 TEXT(),它接受一个 LPTSTR 类型的参数。我有std::string,我想把它转换成LPTSTR。我在网上搜索了它,但找不到我要找的确切内容,您能帮忙吗? 谢谢
【问题讨论】:
-
我用 LPTSTR 替换了 LPCWSTR,但它不起作用。这就是我得到的——“const wchar_t* 类型的值不能用于初始化 LPTSTR 类型的实体”。
-
@prashantkn94 然后只需使用
std::string::c_str() -
“我想调用一个函数 TEXT(),它接受 LPTSTR 类型的参数。我有 std::string,我想将它转换为 LPTSTR。” 否你没有。你真的没有。停止。您不想使用
TEXT或任何基于TCHAR的类型和函数。你只会让自己感到困惑。这些在 Windows 95/98/ME 还活着的时候使用回来,因为这些系统不提供 Unicode API。这些天你应该使用Unicode。使用std::wstring、wchar_t,前缀文字加上L,使其成为宽文字,并调用函数的W版本。 -
不是骗子,另一个问题(以及对此问题的当前答案)涉及 const 限定的
LPCTSTR/LPCWSTR类型,但这是在询问可变的 @987654330 @(又名TCHAR*)类型。我同意@DavidHeffernan 的评论。 -
@DavidHeffernan 感谢您提供的信息,它确实有效。