在ATL应用程序中使用集合

时间:2012-07-13 14:37:24

标签: c++ collections atl

如何在ATL应用程序中将std集合用作向量和列表?如果不可能我可以做什么,除了使用http://msdn.microsoft.com/en-us/library/15e672bd.aspx中描述的集合?我希望例如将一些字符串存储在列表中

的std ::列表< CString>一个列表。

2 个答案:

答案 0 :(得分:1)

你可以非常高兴地使用它们,你只是无法将它们传递到COM边界,因为COM没有;不知道stl集合是什么。您可以使用指针将它们传递到进程内COM边界,但是请注意,在这种情况下您知道自己在做什么。

答案 1 :(得分:0)

是的,请务必这样做。 STL比大多数ATL类更好地设计(关于异常安全性,通用性等)。

当您在集合中存储CCom[Qi]Ptr时,请注意您的库可能会抱怨重载地址的运算符。在ATL的某个地方有一个包装器。

将集合公开为COM集合要困难得多。