描述:
主线程是一个dll,创建了一个excel的application对像,由于数据处理比较多,因此想在子线程中处理,创建了一个子线程,但是调用主线程的excel的application的方法后,程序就没反应了,请问是怎么回事呢?
我在dll中调用了
BOOL CThsXlsSlugApp::InitInstance()
{
CoInitializeEx(NULL,COINIT_MULTITHREADED);
return CWinApp::InitInstance();
}
然后在线程函数中
long WINAPI CDlgFinalReform::ExportThreadProc(LPVOID lpVoid)
{
if (CoInitialize(NULL) != S_OK)
{
return -1;
}
CDlgFinalReform* pFinalReform = (CDlgFinalReform*)lpVoid;
if (pFinalReform)
{
return pFinalReform->ExportProc();
}
CoUninitialize();
return -1;
}
在ExportProc中调用主线程创建的excel的application对象。
解决方案1:
http://www.builder.com.cn/2007/1015/556787.shtml
http://www.vckbase.com/document/viewdoc/?id=1597
线程间传递接口指针要列集、散集的