You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用CoUninitialize后释放IWICImagingFactory报错相关问题咨询

问题1:调用CoUninitialize()函数时,WICfactory会被自动释放吗?

不会。COM接口的引用计数由调用方手动管理,CoUninitialize()仅负责关闭当前线程的COM库、卸载线程加载的COM相关DLL,不会主动为你持有的任何COM接口调用Release()方法执行释放。
你遇到的访问违规是因为CoUninitialize()执行后,WIC组件对应的DLL已经被卸载,mpWICFactory指向的内存空间已经被系统回收,此时再调用Release()访问无效内存地址就会触发报错。

问题2:我是否必须在调用CoUninitialize()函数之前释放WICFactory?

是,你必须在CoUninitialize()调用前释放所有你持有的COM接口指针,包括IWICImagingFactory、ID2D1Factory以及所有你创建的Direct2D、WIC相关资源接口。
正确的程序退出资源释放顺序为:

  • 释放所有自定义持有COM接口指针(包括渲染目标、位图、WIC工厂、D2D工厂等)
  • 调用CoUninitialize()关闭COM库

内容的提问来源于stack exchange,提问作者user10535330

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 12:27:02