导出Excel实现成功,但是我想尝试将导出Excel写在一个线程中,可是程序报错: CoInitialize尚未被呼叫。
小小的郁闷 

解决方案 »

  1.   

    加上initialization 
    CoInitialize(nil);
    finalization
    CoUninitialize;
      

  2.   

    是通过COM/OLE的吧uses ActiveX; 
    //...CoInitialize(nil); 
    try
      //操作Excel
    finally
      CoUnInitialize; 
    end;或uses ActiveX; 
    //...initialization 
      CoInitialize(nil); finalization 
      CoUnInitialize; 
      

  3.   

    synchronize不行啊。
    是不是像下面说的这样?
    一个线程在调用com对象时,必须先调用CoInitialize.而
    Thread.Create 里面的代码是在 主线程 里运行的,如果把CoInitialize 写在这里,是表示主线程可以使用com对象了. Thread.Excute 里面的代码是在线程里运行的,如果把CoInitialize 写在这里,表示这个线程可以使用com对象了.
    我在线程里面写了之后又报错,说undeclare  identifier   coinitialize
      

  4.   

    undeclare identifier coinitialize引入
    uses ActiveX;