Windows编程中的智能指针

时间:2011-04-17 01:19:37

标签: c++ windows pointers smart-pointers

除了STL之外,我只在C ++ windows编程中找到了CComPtr。 Windows SDK中是否还有其他类型的智能指针?感谢。

3 个答案:

答案 0 :(得分:1)

首先,Windows上提供STL和boost的智能指针,使用它们并没有错。

说到纯粹的Windows内容,COM接口指针及其AddRef / Release生命周期管理模型很容易适应智能指针。 Windows专用库中有一些智能指针类,用于存储COM接口指针。除了ATL的CComPtr<>之外,还有_com_ptr_t<> Microsoft Native COM和MFC的COleDispatchDriver。后者很难用于Native COM的出现。除CComPtr外,它们与类型库导入工具一起使用。

答案 1 :(得分:1)

在Windows SDK(特定于ATL)中,有CAutoPtr(单项分配)和CAutoVectorPtr(阵列分配)。

答案 2 :(得分:0)

MSDN article表示CComPtr仅用于COM对象。通常Boost smart pointers通常用作独立于平台的C ++智能指针库。由于智能指针的概念并未绑定到特定的操作系统,因此实际上不需要使用绑定到Windows的智能指针实现,即使这是您计划开发应用程序的唯一平台。