#import指令引用计数问题

时间:2011-05-22 11:19:47

标签: visual-studio-2008 com import

我一直在研究从我的MFC C ++应用程序(VS 2008)调用COM组件的不同方法,以及使用Microsoft Office自动化作为示例,我遇到了MS KB article #196776(最后修改时间为2008年3月13日) )其中陈述如下:

  

您可以使用三种基本方法   自动化:MFC,#import和C / C ++:

     
      
  • 使用MFC,使用Visual C ++类向导从Microsoft Office类型库生成“包装类”。这些类以及其他MFC类(如COleVariant,COleSafeArray,COleException)简化了Automation的任务。此方法通常建议优先于其他方法,大多数Microsoft知识库示例都使用MFC。
  •   
  • #import,一个可用于Visual C ++ 5.0的新指令,可以从指定的类型库创建VC ++“智能指针”。它非常强大,但由于引用计数问题,通常在与Microsoft Office应用程序一起使用时通常会出现
  •   
  • C / C ++自动化要困难得多,但有时需要避免MFC的开销或#import的问题。基本上,您使用CoCreateInstance()等API,以及IDispatch和IUnknown等COM接口。
  •   

我总是喜欢使用#import而不是生成额外的“包装类”,因为在更新COM服务器时我更容易添加新方法(我不需要重新运行ClassWizard),但是现在我是关注我一直采取错误的方法,这个问题是特定于Microsoft Office或所有COM自动化组件的引用计数?如果它只针对Office,我如何避免在我创建的COM服务器中引入类似的问题?

0 个答案:

没有答案