怎样实现安全的 IUnknown + CComPtr?

EDDGA 2020-11-20 09:01:40
参考文:
COM思想的背后
XmlLite - A Small And Fast XML Parser For Native C++
COM编程攻略(三 硬核ATL实现IUnknown代码解析)

如同 XMLLite,不是 ActiveX 组件,但可以用 CComPtr 安全地管理生命周期。
ATL 的 CComObjectRoot 有完善但不容易剥离的 IUnknown 实现,请教有没有轻便安全的方法?
...全文
87 点赞 收藏 2
写回复
2 条回复
陈仲甫 2020年11月25日
这取决于你如何使用CComPtr 他都没用CConPtr::CoCreateInstance 而写了一个专门的创建函数 所以它不要注册机制是可以的 但并不能说他的类已经跟COM其他部分完善协作了 你需要满足那些限制 如果自己去做一个IUnknown 还是需要把信息写入注册表的CLSID下 不然你就要提供自己的创建函数 你可以完全手工写一个继承IUnknown的代码, 但是除非你另外规定使用方法 还是必须实现DllRegisterServer之类导出函数、满足COM规范有要求的QueryInterface的4个特性 等等
回复 点赞
发动态
发帖子
新手乐园
创建于2007-09-28

1.4w+

社区成员

4.1w+

社区内容

C/C++ 新手乐园
社区公告
暂无公告