调用者是否应该释放 SHCreateMemStream 的 return 值?
Shall the caller deallocate the return value of `SHCreateMemStream`?
这是一个愚蠢的问题,但很抱歉我无法在 the online manual of the function 中找到此信息。我来自 Linux 领域。我不熟悉 Windows 世界的惯例。
我找到的所有示例都使用智能指针,例如wil::com_ptr
,但 GCC 显然不提供这些工具。我可以在 return 值上调用 Release
吗?还是不管它?谢谢
IStream
建立在经典 COM IUnknown
接口之上,因此从函数返回的任何 COM 接口指针都已调用 IUnknown::AddRef()
,因此您使用完接口指针后必须调用 IUnknown::Release()
否则会泄漏内存。
GCC obviously doesn't provide those tools
以防万一您需要在 Windows 和 Windows SDK 上使用 cl
的理由,您找到了。
这是一个愚蠢的问题,但很抱歉我无法在 the online manual of the function 中找到此信息。我来自 Linux 领域。我不熟悉 Windows 世界的惯例。
我找到的所有示例都使用智能指针,例如wil::com_ptr
,但 GCC 显然不提供这些工具。我可以在 return 值上调用 Release
吗?还是不管它?谢谢
IStream
建立在经典 COM IUnknown
接口之上,因此从函数返回的任何 COM 接口指针都已调用 IUnknown::AddRef()
,因此您使用完接口指针后必须调用 IUnknown::Release()
否则会泄漏内存。
GCC obviously doesn't provide those tools
以防万一您需要在 Windows 和 Windows SDK 上使用 cl
的理由,您找到了。