LPCSTR
文字列を文字列に変換しようとしていLPCTSTR
ます。このようにしようとすると、2つの文字列を連結したい
LPCTSTR str1 = L"Raja"
LPCSTR str2 = "Kumar"
wcscat_s(str1,(LPCTSTR)str2);
Raja .... r(junkvalues)....のようなo / pを見つけました。どのように型キャストできますLPCSTR
かLPCTSTR
?
LPCTSTR
プロジェクトの設定に応じて、プレーン文字またはワイド文字のいずれかになります。さらに、幅の広い文字列とプレーンな文字列を連結することはできません。1つを互換性のある形式(ワイドからマルチバイト、またはその逆)に変換してから、連結する必要があります。
ターゲットをワイド文字列にする場合は、を"Kumar"
ワイド文字列に変換する必要があります。これを行うにはMultiByteToWideChar
、適切なコードページで関数を使用します。
MSDNのこのKB記事とJohnのリンクを調べてください。
次の注意事項を参照してください:VisualC++での文字列の解明。メモでは、Microsoft C ++開発で表示されるさまざまな種類の文字列と、それらの間で変換する方法について説明します。
コードがUNICODEでコンパイルされている場合は、MultiByteToWideCharが唯一の方法です。
または、これを行うこともできます。7ビットASCII->wcharは簡単なはずです。
TCHAR str3[256] = { 0 };
for (int i = 0; str2[i] != 0; i++) str3[i] = str2[i];
私はこれを試しましたが、うまくいきました:
#include <iostream>
#include <atlstr.h>
using namespace std;
int main()
{
LPCSTR stringToConvert = "My troublesome string";
CString transitionString = stringToConvert;
LPCTSTR myDesiredString = transitionString;
wcout << myDesiredString;
}