电竞比分网-中国电竞赛事及体育赛事平台

分享

Delphi 異常------尚未調(diào)用CoInitialize

 工廠應(yīng)用 2018-05-16
這個(gè)一般是在使用COM或者調(diào)用ADO控件時(shí)出現(xiàn)的錯(cuò)誤,通常情況下都是程序的問題。調(diào)用了com,ole函數(shù)庫(kù)前就要coinitialize,因?yàn)樵趹?yīng)用程序中,delphi會(huì)自動(dòng)在initialize 單元加上對(duì)co...函數(shù)的調(diào)用,在dll中要自己調(diào)用。

    但在Delphi開中的PubDBConn中的如下代碼競(jìng)也提示“尚未調(diào)用 CoInitialize”

procedure CreateadocSQL;
begin
  adocSQL := TADOConnection.Create(nil);
  try
    if adocSQL.Connected then
      adocSQL.Close;
    adocSQL.ConnectionString := StrIS;
    adocSQL.LoginPrompt := FALSE;
    adocSQL.Connected := TRUE;
    adocSQL.CommandTimeout := 600;
  except
    on e: EOleException do
      Application.MessageBox(PChar(e.Source), PChar(e.Message), MB_OK + MB_ICONSTOP);
  end;
end;

initialization      

  CreateadocSQL;
end.

    最終在CreateadocSQL前后加上CoInitialize(nil)和CoUninitilize(),即

  try  
    coinitialize(nil);  
    CreateadocSQL;
  finally  
     .....  
     couninitialize;  
 end;

    當(dāng)然單元中要uses   activex。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多