我正在用 C++ 在 Windows COM 中编写一个程序,我正在使用 CComPtr
作为智能指针。
我找不到答案的问题是 - 我可以在 CComPtr
中使用 std::map
吗?
我有以下代码片段(简化):
std::map<int, CComPtr<IErrorInfo> > ErrorMap;
我希望维护
int
和 IErrorInfo
错误信息之间的这种映射。但是,我不确定是否可以执行以下操作:
CComPtr<IErrorInfo> result;
GetErrorInfo(0, &pErrInfo);
ErrorMap.insert(std::make_pair(0, result));
我担心
result
智能指针的所有权,以及当 ErrorMap
被销毁时它是否会被正确释放? 最佳答案
您需要将 CComPtr 包装在 CAdapt 中才能使其工作。
关于c++ - 我可以在 std::map 中使用 CComPtr 吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10197146/