我想用Embarcadero C++ Builder 2010中的CComHeapPtr智能指针,但找不到任何提供的头文件中的定义。我得到这个错误。没有CComHeapPtr与C + + Builder 2010?
[BCC32 Error] E2451 Undefined symbol 'CComHeapPtr'
这不是在atlbase.h
(和atlalloc.h
似乎是完全缺失)。
我打算用这个来给出从IShellFolder::ParseDisplayName
返回的ItemIDList
的异常安全释放。
它是否出现在这个版本中,还是C++ Builder只使用ATL的令人难以置信的旧版本?
而且,除了自己滚动之外,还有更好的选择吗?
C++ Builder *是否有任何版本的ATL - 该库仅附带MS Visual Studio的非免费版本?毫无疑问,'CComHeapPtr'是一个'ATL'类。 – 2013-02-26 10:20:19
是的,它当然可以。特别是ATLBASE.H(有MS版权)和标准'CComPtr'的东西都可以。 – Roddy 2013-02-26 10:29:32
它可能是一个简化版本,与WDK中包含的版本类似。我不认为'CComHeapPtr'始终在ATL中,我想它是在Visual Studio 2002-2003版本中添加的,并且是一个相对“新”的类。 – 2013-02-26 10:34:09