CSTRINGを文字列に変換する(VC6)
-
23-10-2019 - |
質問
cstringを文字列に変換したいです。 (うん。私は何をしているのか知っています。CSTRING値の範囲がANSIの外側にある場合、返された文字列が間違っていることを知っていますが、それは大丈夫です!)
次のコードは、VC2008で機能します。
std::string Utils::CString2String(const CString& cString)
{
// Convert a TCHAR string to a LPCSTR
CT2CA pszConvertedAnsiString (cString);
// construct a std::string using the LPCSTR input
std::string strStd (pszConvertedAnsiString);
return strStd;
}
ただし、VC6にはCT2CAマクロがありません。 VC6とVC2008の両方で、コードを動作させるにはどうすればよいですか?
解決
マイクロソフトはそれを言います CT2CAはT2CAを置き換えます, 、後者を試して、それが機能するかどうかを確認してください。
他のヒント
ANSI範囲外のキャラクターを気にしないため、ブルートフォースは機能します。
std::string Utils::CString2String(const CString& cString)
{
std::string strStd;
for (int i = 0; i < cString.GetLength(); ++i)
{
if (cString[i] <= 0x7f)
strStd.append(1, static_cast<char>(cString[i]));
else
strStd.append(1, '?');
}
return strStd;
}
所属していません StackOverflow