解决方案 »

  1.   

    pdata->Write(); 这个函数里面操作excel肯定出错啊。
    主线程和新开的线程是2个单独的线程套间,你需要在新线程里面重新初始化COM库,在操作excel
      

  2.   

    初始化com库,必须每个线程都初始化。
      

  3.   

    感谢两位高人回复,现在的问题是如何在子线程中初始化COM库。
    我在主程序InitInstance()函数中添加了if(!AfxOleInit())//
    {
    AfxMessageBox("Init COM Fail!");
    exit(1);
    }在CData中类构造函数中也要添加上面的AfxOleInit()初始化吗?
    是不是也不能用主程序传入的pexcel指针?
    CData中重新pexcel->CreatApp();?
      

  4.   

    AfxOleInit()好像不能用在子线程中 我改用CoInitialize(NULL);
    子线程是不是不能用主线程传入的pexcel指针?