TOP / CODING / APP / LINK / NOTE / MAIL

CStringに関する注意点

インクルードの位置

WTL::CString でなく ATL::CString を使うときは、 atlstr.h は atluser.h と atlgdi.h より前にインクルードすべし。 これらは atlapp.h の中でインクルードされているので、atlapp.h より atlstr.h を前に。 WTL::CString を使うときはこちらの表にある _WTL_FORWARD_DECLARE_CSTRING を使えばよい。 両方使うときは、_CSTRING_NS を自分で定義すれば(ATL or WTL)、 WTL内で使う CString を切り換えられる※1

※1 これを利用すれば_CSTRING_NSを自分のnamespaceに定義して、 自前のCStringをWTLで使う・・・なんてことも可能か。試したことはないけど。

2004.Mar.18

CString あり/なしの判断

CString が使われているかどうかで実装を切り換えたいときは、
#if defined(_WTL_USE_CSTRING) || defined(__ATLSTR_H__)
を使いましょう。その際、CString は _CSTRING_NS::CString とすればなおよいかも。(場合による。)

2004.Apr.2