我写个很简单的程序,调用一个COM组件,那么什么时候我必须这样写:CoInitializeEx( 0, COINIT_MULTITHREADED );如果我的程序里面没有任何创建线程的调用,那么上面的第2个参数可以是NULL么?谢谢!

解决方案 »

  1.   

    最好COINIT_MULTITHREADED吧,你没有显示创建线程,不代表程序只有一个线程,现在VC都不支持单线程模型了。
      

  2.   

    dwCoInit 
    [in] Specifies the concurrency model and initialization options for the thread. This parameter can be set to COINIT_MULTITHREADED or COINIT_APARTMENTTHREADED. CSDN也没说两个选项的区别,学习一下,做个记号。If neither concurrency model is specified by the dwCoInit parameter, the default is COINIT_MULTITHREADED.这句什么意思?没有指定并发模式,默认COINIT_MULTITHREADED吗?怎么理解呢?
      

  3.   

    没事别用 COINIT_MULTITHREADED,通常用 COINIT_APARTMENTTHREADED 就够了
      

  4.   


    1楼和3楼两位说法不一样啊
    3L: 是啊,MSDN也没有详细说明,真不知道该用哪个。
      

  5.   

    要解释清楚它的含义,还真不是容易的事情。使用 COINIT_APARTMENTTHREADED 的效果跟 CoInitialize(NULL) 的效果相同。