MFC 操作Excel,在线程中调用 ExcelApp.CreateDispatch("Excel.Application",NULL)失败

VC操作Excel,在线程中调用 ExcelApp.CreateDispatch("Excel.Application",NULL)返回失败

 

解决办法: 在线程的执行函数里面调用 AfxOleInit ,初始化COM库

 

解析:工程向导生成的代码主线程已经凋用 OleInitialize 这个 API初始化COM库了,所   以在主线程里面调用ExcelApp.CreateDispatch不会报错;但当你自己开启了新的线程,

            在新开启的线程中若仍需操作Excel文件的话,就需要在新线程中重新初始化COM库,即再次调用OleInitialize。

 

相关函数扩展:

CoInitialize(NULL)        Initializes the COM library on the current thread and identifies the concurrency model as single-thread apartment (STA).

你可能感兴趣的:(编程小技巧)