2

LPCSTR文字列を文字列に変換しようとしていLPCTSTRます。このようにしようとすると、2つの文字列を連結したい

LPCTSTR str1 = L"Raja"
LPCSTR str2 = "Kumar"
wcscat_s(str1,(LPCTSTR)str2);

Raja .... r(junkvalues)....のようなo / pを見つけました。どのように型キャストできますLPCSTRLPCTSTR

4

4 に答える 4

2

LPCTSTRプロジェクトの設定に応じて、プレーン文字またはワイド文字のいずれかになります。さらに、幅の広い文字列とプレーンな文字列を連結することはできません。1つを互換性のある形式(ワイドからマルチバイト、またはその逆)に変換してから、連結する必要があります。

ターゲットをワイド文字列にする場合は、を"Kumar"ワイド文字列に変換する必要があります。これを行うにはMultiByteToWideChar、適切なコードページで関数を使用します。

MSDNのこのKB記事とJohnのリンクを調べてください。

于 2009-10-29T09:28:01.940 に答える
2

次の注意事項を参照してください:VisualC++での文字列の解明。メモでは、Microsoft C ++開発で表示されるさまざまな種類の文字列と、それらの間で変換する方法について説明します。

于 2009-10-29T09:30:12.850 に答える
0

コードがUNICODEでコンパイルされている場合は、MultiByteToWideCharが唯一の方法です。

または、これを行うこともできます。7ビットASCII->wcharは簡単なはずです。

TCHAR str3[256] = { 0 };
for (int i = 0; str2[i] != 0; i++) str3[i] = str2[i];
于 2017-06-28T10:25:56.040 に答える
0

私はこれを試しましたが、うまくいきました:

#include <iostream>
#include <atlstr.h>

using namespace std;
int main()
{
    LPCSTR stringToConvert = "My troublesome string";
    CString transitionString = stringToConvert;
    LPCTSTR myDesiredString = transitionString;

    wcout  << myDesiredString;
}
于 2020-02-06T01:18:52.980 に答える