我在程序里面创建一个线程来打开和读取office文档的内容。创建线程我是用AfxBeginThread。
代码:m_hOffice = AfxBeginThread(thStartCheck,NULL);
在thStartCheck里面对各个office进行内容读取。if(stricmp(cFileType,".txt")==0)
{//txt
OfficeSelf.TxtCheck(m_sFileName);
}
else if(stricmp(cFileType,".doc")==0 || stricmp(cFileType,"docx")==0)
{//WORD
OfficeSelf.WordCheck(m_sFileName);
}
else if(stricmp(cFileType,".xls")==0 || stricmp(cFileType,"xlsx")==0)
{//EXCEL
OfficeSelf.ExcelCheck(m_sFileName);
}
else if(stricmp(cFileType,".ppt")==0 || stricmp(cFileType,"pptx")==0)
{//txt
OfficeSelf.PPTCheck(m_sFileName);
}结果:txt是正常(用的是CFile类),WORD在执行Open()的时候报内存冲突,PPT和EXCEL都分别创建不了Application对象WORD,PPT,EXCEL,的打开读取代码都是正确的。我不用线程来做,直接在进程里面调用都是没问题的。有人知道问题出在哪吗?我现在是需要在线程里面打开、读取office文档的内容。 (堆栈空间?内存分配什么的?)