jef*_*ffm 7 windows com visual-c++
我打电话给CoInitializeEx,具体来说:
CoInitializeEx(NULL, COINIT_DISABLE_OLE1DDE | COINIT_APARTMENTTHREADED);
Run Code Online (Sandbox Code Playgroud)
在我的应用程序创建的线程中,但随后在应用程序退出之前终止.将这些与CoUninitialize调用配对是否很重要,或者在线程终止时是否释放这些资源?
Fré*_*idi 16
当进程终止时,通常会将资源返回给系统,而不是在其中一个线程执行时.
但是,CoUninitialize()不仅释放资源并卸载DLL,它还进入模态消息循环,以便在线程终止之前抽取剩余的COM消息.文件说:
如果还有剩余的打开对话,则
CoUninitialize启动模态消息循环并从容器或服务器为此COM应用程序分派任何待处理消息.通过分派消息,CoUninitialize确保应用程序在接收所有未决消息之前不会退出.非COM消息被丢弃.
因此,为了避免调用方的RPC错误,我建议您遵循文档的建议,并CoUninitialize()在终止已调用的线程之前始终调用CoInitializeEx().
| 归档时间: |
|
| 查看次数: |
3689 次 |
| 最近记录: |