stdコレクションをATLアプリケーションのベクターおよびリストとして使用するにはどうすればよいですか?http://msdn.microsoft.com/en-us/library/15e672bd.aspxで説明されているコレクションを使用する以外に、代わりに何ができるかが不可能な場合はどうすればよいですか?たとえば、いくつかの文字列を次のようにリストに保存したい
std :: list<CString>alist。
stdコレクションをATLアプリケーションのベクターおよびリストとして使用するにはどうすればよいですか?http://msdn.microsoft.com/en-us/library/15e672bd.aspxで説明されているコレクションを使用する以外に、代わりに何ができるかが不可能な場合はどうすればよいですか?たとえば、いくつかの文字列を次のようにリストに保存したい
std :: list<CString>alist。
あなたはそれらを非常に幸せに使うことができます、COMが知らないのであなたはそれらをCOMの境界を越えて渡すことはできません;stlコレクションが何であるかを知りません。ポインタを使用して、処理中のCOM境界を越えてそれらを渡すことができますが、そのような状況で何をしているのかを知っていることに注意してください。
はい、ぜひともそうしてください。STL は、ほとんどの ATL クラスよりも優れた設計になっています (例外の安全性、汎用性などに関して)。
コレクションに格納するときは注意しCCom[Qi]Ptr
てください。ライブラリは、オーバーロードされた address-of 演算子について文句を言うかもしれません。ATL のどこかにラッパーがあります。
ただし、コレクションを COM コレクションとして公開するのははるかに困難です。