【发布时间】:2013-02-26 10:18:17
【问题描述】:
我正在尝试将 CComHeapPtr 智能指针与 Embarcadero C++Builder 2010 一起使用,但在任何提供的标头中都找不到定义。我得到了这个错误。
[BCC32 Error] E2451 Undefined symbol 'CComHeapPtr'
它不在atlbase.h 中(并且atlalloc.h 似乎完全丢失了)。
我打算使用它来对从IShellFolder::ParseDisplayName 返回的ItemIDList 进行异常安全的释放。
它是否存在于这个版本中,还是 C++Builder 只是使用了一个非常旧的 ATL 版本?
而且,除了自己动手,还有更好的选择吗?
【问题讨论】:
-
C++ Builder at all 是否有任何版本的 ATL - 只有非免费版本的 MS Visual Studio 附带的库?毫无疑问,
CComHeapPtr是一个ATL类。 -
是的,确实如此。尤其是 ATLBASE.H(具有 MS 版权),标准的
CComPtr东西都有效。 -
它可能是一个简化版本,类似于 WDK 中包含的版本。我不认为
CComHeapPtr一直在 ATL 中,我想它是在 Visual Studio 2002-2003 版本中添加的,是一个相对“新”的类。
标签: com atl c++builder-2010