亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Delphi > 正文

PowerBuilder調用Delphi寫的Dll時發生的奇怪問題

2019-11-18 18:01:22
字體:
來源:轉載
供稿:網友
因項目需要,我用Delphi寫了一個連接數據庫把數據導出到Sql文件的dll,其中使用了TADOQuery組件
其中只有一個導出方法:
function DataExport(path,ini_path:PChar):integer

  寫完之后,用delphi寫了一個test.exe進行測試,發現可以正常使用。
之后便把這個dll交給了同事,讓他在PowerBuilder中調用。同事拿過去之后發現,一旦調用DataExportPB就報告無法打開目標Dll。我想可能是因為兩邊運行的環境不一樣,隨后就把test.exe拷過去試試看。奇怪的是,test.exe運行正常。

  為了確定問題到底出現在哪里,我又使用Python和C#測試了一下,C#下面沒有問題,但是Python報告錯誤:
沒有調用 CoInitialize()
查閱資料之后發現,如果在Delphi的Dll里面使用了ADO組件,那么需要在使用之前調用ActiveX的CoInitialize方法。知道了問題之后就好辦多了,在源代碼中創建TADOQuery之前調用CoInitialize(),Python調用成功。

  本以為PowerBuilder也應該沒問題,可誰知還是一樣的問題。這下子我想不通了。Python中的ctypes模塊使用的C中的調用方法,參數傳遞方式應該和PowerBuilder一樣,可是為什么PB里面還是不行呢?同事讓我在Dll里面多寫一個輸出方法試試看,那好,我又寫了下面這樣一個方法:

function test:PChar;
begin
  result := 'Test string from test';
end;

  PB里面調用test方法成功,  接著同事又嘗試調用DataExport,成功了?。。??為什么?這個test方法僅僅只是輸出一段固定的字符串而已,為什么DataExport就調用成功了呢?我真是百思不得其解。

  但是這時又出現一個問題,一旦退出PB應用程序則發生一個內存操作錯誤。

  我仔細檢查了Delphi代碼,以圖發現是不是哪一個對象沒有釋放,我的代碼如下:

function DataExport(path,ini_path:PChar):integer;
var
  query : TADOQuery;
begin
  .........
  CoInitialize();
  query := TADOQuery.Create(nil);
  .........
  query.Close;
  query.Free;
  CoUnInitialize();
  .........
end;

沒有什么問題??!無奈之下我把CoInitialize()和CoUnInitialize()分成兩個獨立方法。
function init:integer;
begin
  try
    CoInitialize();
    result := 1;
  except
    on Exception:
      result := 0;
  end;
end;

function uninit:integer;
begin
  try
    CoUnInitialize();
    result := 1;
  except
    on Exception:
      result := 0;
  end;
end;

然后讓同事在窗體初始化事件中先調用 init,然后再關閉事件中調用 uninit。問題解決。什么都正常了。

雖然問題得到解決,但是我還是不明白為什么要這樣做。



上一篇:模擬delphi編輯窗體操作控件。。。

下一篇:Delphi下的接口編程學習筆記(原創)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
學習交流
熱門圖片

新聞熱點

疑難解答

圖片精選

網友關注

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲国产私拍精品国模在线观看| 欧美一级视频免费在线观看| 欧美日韩午夜激情| 欧美国产在线视频| 欧美日韩免费区域视频在线观看| 日韩午夜在线视频| 国产成人精品日本亚洲| 亚洲精品一区二区在线| 欧美视频精品一区| 国产免费一区二区三区香蕉精| 亚洲免费精彩视频| 亚洲精品久久久久中文字幕二区| 亚洲伦理中文字幕| 一个色综合导航| 在线播放国产一区中文字幕剧情欧美| 欧美最近摘花xxxx摘花| 北条麻妃一区二区三区中文字幕| 狠狠躁夜夜躁人人爽天天天天97| 日韩中文av在线| 午夜精品一区二区三区在线视| 亚洲精品永久免费| 91av视频在线观看| 在线播放国产一区二区三区| 欧美一区二区色| 国产日韩在线一区| 国产精品久久久久7777婷婷| 91wwwcom在线观看| 成人精品网站在线观看| 国产成人亚洲综合青青| 97久久精品视频| 欧美日韩免费区域视频在线观看| 国产精品揄拍500视频| 97久久精品在线| 国产综合福利在线| 欧美寡妇偷汉性猛交| www.欧美免费| 亚洲成年人影院在线| 美女性感视频久久久| 亚洲电影免费观看高清完整版在线| 精品久久久久久中文字幕大豆网| 久久久久久久国产| zzjj国产精品一区二区| 欧美精品videosex性欧美| 色偷偷噜噜噜亚洲男人的天堂| 国产99久久久欧美黑人| 国产成人在线视频| 亚洲日韩欧美视频一区| 国产欧美精品久久久| 91在线免费看网站| 国产精品电影观看| 日韩www在线| 亚洲成年人在线播放| 欧美成人h版在线观看| 日韩成人激情影院| 亚洲一区二区三区sesese| 一区二区成人av| 久热爱精品视频线路一| 日韩精品免费在线播放| 岛国视频午夜一区免费在线观看| 欧美插天视频在线播放| 久久精品亚洲热| 久久久久久亚洲精品| 精品久久久国产精品999| 亚洲成人网在线观看| 亚洲精品视频中文字幕| 成人www视频在线观看| 欧美丝袜第一区| 国产精品成人一区二区| 亚洲www永久成人夜色| 欧美激情性做爰免费视频| 成人伊人精品色xxxx视频| 91av视频在线播放| 日本久久精品视频| 日韩高清有码在线| 欧美肥老妇视频| 欧美精品18videosex性欧美| 日韩一区在线视频| 国产极品jizzhd欧美| 国产精品视频久久久久| 欧美激情日韩图片| 欧美日韩免费在线| 欧美性极品少妇精品网站| 欧美激情精品久久久久久免费印度| 8x海外华人永久免费日韩内陆视频| 欧美男插女视频| 国产精品极品尤物在线观看| 久久精品国产精品亚洲| 久久九九国产精品怡红院| 亚洲成在人线av| 日韩视频免费大全中文字幕| 欧美精品在线观看| 欧美与黑人午夜性猛交久久久| 欧美诱惑福利视频| 欧美一级高清免费播放| 久久精品99无色码中文字幕| 97热在线精品视频在线观看| 中文字幕亚洲综合久久筱田步美| 亚洲欧美综合另类中字| 午夜精品国产精品大乳美女| 国产视频欧美视频| 亚洲aa中文字幕| 亚洲午夜未满十八勿入免费观看全集| 日韩成人中文电影| 亚洲国产福利在线| 国产精品日韩欧美大师| 国产成人一区二区三区小说| 国产午夜精品全部视频在线播放| 亚洲色图日韩av| 欧美成人国产va精品日本一级| 韩国19禁主播vip福利视频| 久久久伊人日本| 亚洲成人精品在线| 在线精品国产欧美| 国产精品大片wwwwww| 青青精品视频播放| 国产精品最新在线观看| 欧美午夜视频在线观看| 久久久精品视频成人| 亚洲午夜未满十八勿入免费观看全集| 88国产精品欧美一区二区三区| 国产91成人在在线播放| 黄色成人av在线| 欧美高跟鞋交xxxxxhd| 精品国产依人香蕉在线精品| 中文字幕视频在线免费欧美日韩综合在线看| 日韩av免费在线看| 亚洲第一综合天堂另类专| 国产精品久久久久久亚洲调教| 国产精品aaa| 亚洲理论片在线观看| 欧美人在线视频| 成人福利网站在线观看11| 日韩高清电影免费观看完整版| 国产精品主播视频| 北条麻妃一区二区在线观看| 久久精品成人欧美大片| 国产精品对白刺激| 国产成人久久久| 国产精品流白浆视频| 欧美精品激情blacked18| 麻豆精品精华液| 国产精品成人va在线观看| 97涩涩爰在线观看亚洲| 色综合色综合久久综合频道88| 亚洲久久久久久久久久久| 国产亚洲视频在线观看| 久久精品亚洲国产| 国产在线精品成人一区二区三区| 精品一区二区三区三区| 日本国产高清不卡| 亚洲女人天堂色在线7777| 欧美性高跟鞋xxxxhd| 中文字幕日韩精品在线观看| 久久精品中文字幕一区| 亚洲人成电影网站色www| 久久夜色精品国产| 亚洲加勒比久久88色综合| 日韩电影第一页| 久久亚洲一区二区三区四区五区高| 亚洲精品99久久久久| 久久乐国产精品| 国产午夜精品麻豆| 日韩av色在线| 亚洲美女喷白浆|