我正在尝试将LPCSTR
字符串转换为LPCTSTR
字符串。我想连接两个字符串,当我这样尝试时
LPCTSTR str1 = L"Raja"
LPCSTR str2 = "Kumar"
wcscat_s(str1,(LPCTSTR)str2);
我找到了像 Raja..r(junkvalues)....这样的 o/p 怎么能类型转换LPCSTR
到LPCTSTR
?
LPCTSTR
可以是纯字符或宽字符,具体取决于您的项目设置。此外,您不可能将宽字符串和纯字符字符串连接起来。您需要将一个转换为兼容的形式(宽到多字节,反之亦然),然后连接。
假设您希望目标是宽字符串,则需要将其转换"Kumar"
为宽字符串。为此,请使用MultiByteToWideChar
具有适当代码页的函数。
在 MSDN 和 John 的链接上查找此知识库文章。
请参阅以下说明:在 Visual C++ 中解开字符串。这些注释讨论了您将在 Microsoft C++ 开发中看到的各种字符串以及如何在它们之间进行转换。
我试过这个它有效:
#include <iostream>
#include <atlstr.h>
using namespace std;
int main()
{
LPCSTR stringToConvert = "My troublesome string";
CString transitionString = stringToConvert;
LPCTSTR myDesiredString = transitionString;
wcout << myDesiredString;
}
如果您的代码是使用 UNICODE 编译的,那么 MultiByteToWideChar 是唯一的方法。
或者,您可以这样做。7bits ASCII -> wchar 应该很容易。
TCHAR str3[256] = { 0 };
for (int i = 0; str2[i] != 0; i++) str3[i] = str2[i];