WTL CString クラスを使用します。このクラスには、オーバーロードされた演算子が 1 つあります。
operator LPCTSTR() const
{
return m_pchData;
}
だから私はこのようにそれを使用しました:
CString sText = _T("I like CString!");
TRACE("%s", sText);
そして私は得ました:
Output: I like CStrings!
しかし、独自の特定の変換メソッドと演算子をいくつか追加した後:
operator LPWSTR() const
{
return ConvertStringToWide();
}
と
operator LPSTR() const
{
return ConvertStringToAnsi();
}
そして今、私は代わりに取得します:
Output: I like CStrings!
これ:
Output: &%?....
いくつかのテストを行った後、演算子 LPCTSTR() を呼び出して m_pchData を返す代わりに、CString がクラスの this ポインターを返すことがわかりました! したがって、m_pchData ではなく、常にクラスへのポインターを取得します。
私の質問は次のとおりです。CStringクラスに、デフォルトで演算子LPCTSTR()を使用し、thisポインターを返さないようにするにはどうすればよいですか?