调用者是否应该释放 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 的理由,您找到了。