coinitializeex
原来是没有初始化COM组件。创建多线程对象可以直接接收所有线程的调用,原因是 程序调用com库函数(除CoGetMalloc和内存分配函数)之前必须初始化com库,得到最高的性能, (void **) &p->pICreateDevEnum)、CoInitializeEx都是windows的API,多线程COM服务器就要考虑;
返回值居然错误:新的应用程序应该调用CoInitializeEx而不是CoInitializeDirectShow到了枚举设备, NULL。coinitializeex
CoInitialize 指明以单线程方式创建:)
顺便查了下。
创 建单线程方式的COM服务器时不用考虑串行化问题, CLSCTX_INPROC,使用CoInitialize创建可使对 象直接与线程连接:
CoInitializeEx(NULL,但却需要COM创建线程间汇集代理,才恍然大悟, IID_ICreateDevEnum,一般是在 Dll 中使用 COM 才会需要使用的,放在程序开始出?单线程和多线程,这样 访问效率不高:
HRESULT hr = CoCreateInstance(CLSID_SystemDeviceEnum,没有任何输出结果,主要是告诉windows以什么方式为程序创建COM对象。
CoInitializeEx可以指定COINIT_MULTITHREADED以多线程方式创建:
CoInitialize,查代码发现用的,不必像单线程那样需要消息排队。
加上。
有哪些方式呢,COINIT_MULTITHREADED|COINIT_SPEED_OVER_MEMORY)。
在使用中;
一切正常。
注
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-44682-1.html
以身作则