首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

为什么在多线程调用的函数中 HRESULT hres = CoInitializeEx(0, COINIT_MULTITHREADED); 失败?解决办法

2012-01-14 
为什么在多线程调用的函数中 HRESULT hres CoInitializeEx(0, COINIT_MULTITHREADED) 失败?创建10个线程

为什么在多线程调用的函数中 HRESULT hres = CoInitializeEx(0, COINIT_MULTITHREADED); 失败?
创建10个线程,为什么第一个是正常的,不会打印现“失败”,以后的线程全部打印“失败”?

for(int   i=0;i <10;i++){
        threads[i]   =   CreateThread(NULL,0,FunProc,NULL,0,NULL);
        Sleep(100);
}

DWROD   WINAPI   FunProc(LPVOID   lpPara){

        HRESULT   hres   =     CoInitializeEx(0,   COINIT_MULTITHREADED);  

        if   (FAILED(hres))
        {
                cout   < <   "失败 "  
                        < <   hex   < <   hres   < <   endl;
ClearThreadAndIp(ip);
                return   1;
        }
}

谢谢!

[解决办法]
我猜想是每个进程中初始化一次即可

热点排行