4

私はここ数日でATLを少しだけ学び(純粋なWin32がどれほど苦痛であるかを理解した後)、WTLとMFCについても学びました。そして、私が見たところ、かなりの数の異なる文字列クラスが利用可能です。自分。

次のようなことをしていました:

#include <tchar.h>
#include <string>
namespace std { typedef basic_string<TCHAR> _tstring; }

そして_tstring、私のコードのどこでも使用します。いくつかのATLを学んだ後、私はにCStringクラスがあることを学びましたatltmp.h。どうやら、CStringWTLには別のクラスがあり、MFCにはさらに別のクラスがあります。 CString

ATLを使い続けるのか、WTLやMFCなどに切り替えるのかわかりません。しかし、現在、Win32コードをATLに変換している最中であり、何を変更し、何を保持するかがわかりません。

文字列をCString代わりに使用する必要があり_tstringますか?実行可能ファイルのサイズ(共有ライブラリを除く)移植性/互換性の両方を考慮すると、そうすることにメリットはありますか?

4

2 に答える 2

6

私の好みはCString、ATL / MFC / WTL に固執することです。とにかくこれらのフレームワークを使用している場合、移植性のオプションが多くあるわけではありません。そして、あなたは彼らが言うことを知っています:When in Rome ...

また、CStringそれについていくつかの優れた点があります

  • を使用して、実行可能ファイルからリソース文字列をロードできますCString::LoadString
  • を使用して内部文字列バッファに直接アクセスしますCString::GetBuffer/ReleaseBuffer
  • CStringA&の間でサイレント変換CStringW
  • printfを使用してのような書式設定を実行しますCString::Format
于 2011-08-26T18:18:26.993 に答える
0

私が読んだのは、CStringヌル文字をサポートしていないということです。

だったらSTLのままでいこうと思います。

于 2011-09-08T07:34:50.783 に答える