也就是说如果多线程调用Com接口,必须在每个线程中都调用CoInitialize。2. OleInitialize初始化Com(其实也是调用CoInitializeEx),支持多线程。比CoInitialize多了一下内容:A) ClipboardB) Drag and dropC) Object linking and embedding (OLE)D) In-place activation如果不需要这些,用CoInitialize就可以。3.AfxOleInit是MFC对OleInitialize的封装。貌似不支持多线程,也就是说只能在主进程调用该函数,如果线程需要使用Com必须调用上面的两个来实现初始化。而且MSDN明确标明AfxOleInit不能在MFC的DLL中调用,否则也会造成初始化失败。4.OleInitialize和OleUninitialize()成对使用;CoInitialize和CoUninitialize成对使用;CoInitializeEx和CoUninitialize成对使用;AfxOleInit()由MFC自动释放。coinitializeexVC++使用ADO访问ACCESS时,出现_RecordsetPtr Open卡或者_ConnectionPtrExcute卡或者_CommandPtrExcute一直卡住等莫名其妙的情况时,而语法又没有错误时,请确定初始化COM函数。MFC程序建议使用AfxOleInit()。
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-44683-2.html
看人家会创作