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