我正在用C ++编写Windows COM中的程序,我正在使用CComPtr来创build智能指针。
我无法find答案的问题是 – 我可以在std::map使用CComPtr 。
std::map<int,CComPtr<IErrorInfo> > ErrorMap;
我希望保持int s和IErrorInfo错误信息之间的映射。
Windows编程中的智能指针
在Windows中,我怎样才能用`new`replace`GlobalAlloc`?
tr1 :: unique_ptr和SelectObject()
不过,我不确定是否可以做到以下几点:
CComPtr<IErrorInfo> result; GetErrorInfo(0,&pErrInfo); ErrorMap.insert(std::make_pair(0,result));
我关心result智能指针的所有权,以及在ErrorMap被销毁时它是否能够正确释放?
您需要将您的CComPtr包装在CAdapt中才能正常工作。
适配器类CAdapt非常有用,因为许多容器类(如STL容器类)希望能够使用address-of运算符获取其包含的对象的地址。 操作符地址的重新定义可能会混淆这个要求,通常会导致编译错误,并阻止在该容器中使用unadapted类型。 CAdapt提供了解决这些问题的方法。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。