我建立了一个公用模块:一个窗体,上面有ado控件,封装成一个bpl包
在主程序中调用的时候,出现错误:尚未调用CoInitialize,请问应该在何处调用呢?谢谢!

解决方案 »

  1.   

    现在,调用bpl中的全局变量也初效访问冲突,,,,难道使用bpl也这么麻烦???
      

  2.   

    ADO控件不需要CoInitialize,可能是你公用模块中其他地方建立了COM对象引起的。你可以在你的公用模块单元中,加入下面的代码,再试试。
    initialization
      CoInitialize;
    finalization
      CoUninitialize;BPL中的全局变量,可以直接被其他引用它的单元所使用,除非你使用了多线程,否则不存在访问冲突的问题。这一特点,正是BPL优于DLL的一个地方。
      

  3.   

    无语了。查一查Delphi的帮助文档,看看initialization是什么意思,就知道那段代码该放在哪儿了。授人以鱼不如授之以渔。你觉得呢?
      

  4.   

    我能看来这几句话的意思是分别放在初始化和结束的地方,我试着在单元里加入initialize,不过总是报错,找不对地方,,,,
      

  5.   

    initialization 
        CoInitialize; 
    finalization 
        CoUninitialize; 
    写在end.前