调用COM的正确方法

来源:互联网 发布:淘宝商品视频如何上传 编辑:程序博客网 时间:2024/04/28 23:12
检查一下是不是在CoUninitialize   调用的时候还有未完结的接口引用?    
   
  这个问题经常发生在使用   #inmport   生成的   智能接口   包装上.  
  比如:  
   
  void   main()  
  {  
        CoInitialize(NULL);  
   
        IApplicationPtr     app;  
        app.CreateInstance(...);  
   
        try{  
        }  
        catch(_comn_error&)   {}  
   
        CoUninitialize();  
  }  
   
   
  在上面这种情况下,极易出问题,   因为   app   接口不会在CoUninitialize   之前释放.   这种情况是未定义的.   会发生什么谁也不能肯定.    
   
  正确地做法是   明确地在   卸载   COM   前释放所有的   COM   接口引用:    
   
    ...  
    app.Release();  
    CoUninitialize();  
  }