工作过程中,有一个项目涉及OPC客户端读取数据,在界面升级过程中,想使用 ribbon 控件,结果在APP的 InitInstance()函数中调用AfxOleInit()时,返回报错“OLE 初始化失败。 请确保 OLE 库是正确的版本”,经验不足,经过一天的屏蔽代码测试,发现是在opc客户端功能类中使用了
::CoInitializeEx(0, COINIT_MULTITHREADED); //初始化COM库
这句代码可能与AfxOleInit()会有冲突,屏蔽之后能够正常添加使用ribbon控件了!因此两者不能同时存在!
PS:另外在解决问题的过程中,也尝试过将“项目”——》属性——》常规——》公共语言运行时支持——》设置为“公共语言运行时支持(/clr)”,好像也能解决问题,但好像编译调试运行时会特别卡,不推荐这个方法!