DShowLib是IMAGE CONTROL提供的1394接口相机开发库。在使用该库时出现了与COM控件(比如:WEB控件)的冲突,OLE初始化失败,导致所有基于COM技术的控件无法使用,出现运行时错误(控件窗口创建失败)。调试分析结果为DShowLib的initial过程其实也是OLE的初始化,但其修改了一些设置导致其它COM控件无法使用。

解决办法:
        优先初始化OLE,将DShowLib的initial放在后边,等所有其它COM控件创建完成后再进行DShowLib之grabber等的创建。这样既可以避免如上所述之问题。

 1 DShowLib::Grabber *p_Grabber;  //必须定义成指针
 2 C**WinApp theApp;
 3 
 4 void C**WinApp::Initialize()
 5 {
 6    /**/
 7    if(!AfxOleInit())
 8       return ;
 9    if(!DShowLib::initial(""))
10         return ;
11    //
12    p_Grabber=new DShowLib::Grabber();
13    //
14 }