假设我的应用程序在启动时调用 CoInitialize,并在存在之前调用 CoUninitialize。
假设我的应用程序使用了一个第三方组件并执行类似的操作,这会导致某种失败吗?
当 CoInitialize 调用已经提交后,可以调用它吗?第二次调用会失败吗?或者它只是“让它通过”,因为它已经被调用了。
最佳答案
如果已在调用线程中初始化,
CoInitialize
将返回 S_FALSE
。但是,对于返回 S_OK
和 S_FALSE
的调用,都需要进行 CoUninitialize
调用。系统会计算对该函数的调用次数,并且只有当 CoUninitialize 的次数等于 CoInitialize 的次数时,它才会真正取消初始化。
所以总而言之,第二次调用是无害的,多次调用这对函数也没有问题。
关于winapi - 两次调用 CoInitialize(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7824383/