VisualStudio2005(VC)でCStringのヘルプ

[戻る]
まぁ 2007/10/27(土) 11:37:15
VisualStudio2005(VC++)でMFCのCStringのヘルプでCStringクラスの
ヘルプが見つからないのですが、なくなっているのでしょうか?

コンパイルできるし、ヘルプの中でCStringの記述が出てくるので
どこかにCStringクラスのメンバ一覧とかがでてきて良さそうですが
CStringTしか見つかりません。

今は仕方なくVC6のヘルプを見ています。

よろしくお願いします。

FUKU 2007/10/27(土) 12:07:57
afxstr.hをみるとCStringは ATL::CStringTのtypedefみたいですね

επιστημη [HomePage] 2007/10/27(土) 17:37:27
#include <afxwin.h>
#include <iostream>
#include <typeinfo>

int main() {
  std::cout << typeid(CString).name() << std::endl;
}

...この結果によると UNICODE-mode に応じて
ATL::CStringT<char> もしくは ATL::CStringT<wchar_t> 
の typedef であるようです。

まぁ 2007/10/28(日) 01:39:11
[[解決]]
FUKU さん、επιστημη さん
ありがとうございます。

ヘルプにtypedefされているとか書かれていましたが、
ATLって何?って状態なので、ヘルプでATLって出てきて戸惑っていますが
ヘルプで「CStringT は CSimpleStringT クラスを継承します。」あったので
「CSimpleString」のメンバでやっと「GetBuffer」がでてきました。

http://msdn2.microsoft.com/ja-jp/library/72b2swax(VS.80).aspx
(「MFC ライブラリ リファレンス」ってありますがATL?)
では、「CString オブジェクト内の文字はメンバ関数 GetAt および…」
って表記があるならヘルプでCStringのメンバ関数一覧があって欲しかったです。

(説明の「CString」のリンク先は「CStringT」になってますけど…)

VC6でのCStringメンバ関数のヘルプを「Visual Studio 2005 MSDN ライブラリ」で
見ようとしただけなのにたどり着くのに時間かかりました。

Ban 2007/10/29(月) 00:24:52
CStringは、VC6の頃(MFC6)ではUNICODEとSJISが混在できないマクロスイッチで。
MFC7以降は、ATLというMSの別テンプレートライブラリと統合されて、
両方がtemplateで選択できるようになってます。

# 概観は似せてあってI/Fはある程度維持してますけど、内部実装は結構別物です。
# MFC6のCStringとMFC7のCString

Ban 2007/10/29(月) 00:24:52
CStringは、VC6の頃(MFC6)ではUNICODEとSJISが混在できないマクロスイッチで。
MFC7以降は、ATLというMSの別テンプレートライブラリと統合されて、
両方がtemplateで選択できるようになってます。

# 概観は似せてあってI/Fはある程度維持してますけど、内部実装は結構別物です。
# MFC6のCStringとMFC7のCString

古いスレッドには追加発言できません。