COM接口调用,CreateDispatch失败的问题

有一个自动化处理Office文档的程序,原本运行的很好,基于效率和UI效果的问题,改成了多线程处理,编译没问题,一运行就报错找不到Office软件。

程序中产生错误的地方就是创建COM对象失败,以前好好的为什么失败呢,检查了老半天,才发现是缺少初始化COM环境的调用,即CoInitialize(NULL);

尽管主程序中已经调用CoInitialize(NULL); 但COM应用环境并未传递到线程中去,导致线程中创建COM对象失败了。

因此,需要在线程入口处调用CoInitialize(NULL);,退出线程前再调用CoUninitialize();。

上一篇:【转】Devexpress使用之:GridControl控件(合并表头)


下一篇:SQLServer用sql语句怎么返回一个月所有的天数