天天看點

Delphi - 如何調試 DLL

網上看到很多人問delphi中如何調試 DLL 的,衆大俠回答也基本一緻,但是,我使用時卻時靈時不靈,今天發現了原因。

完整的調試 DLL方法如下:

1)建立一個 DLL 工程,名字就叫 MyDll 吧,編譯後生成 MyDll.dll,我們要調試的就是它了。

2)建立一個用來調試 MyDll 的 Application 工程,名字就叫 MyDllTest 吧,編譯後生成的可執行性檔案為 MyDllTest.exe,這就是我們用來調試 MyDll.dll 的宿主程式

3)MyDllTest.exe 所在目錄中不能有 MyDll.dll(重要!)

4)MyDllTest 采用靜态調用的方法調用 MyDll.dll 的導出函數(重要!)

5)進入 MyDll 工程,執行菜單“Run”->“Parameters”,将彈出的對話框的 Local 頁中的“Host Application”設定為上面的 MyDllTest.exe(含路徑)

完成以上步驟,就可以在 MyDll 工程中執行“Run”了,也可以進行調試。

以上3)、4)、5)為重點,第三點在大多數網上的解答中都沒有提到,也是我使用時時靈時不靈的原因(不清楚這個原因前,我還特地把 MyDll.dll 複制到 MyDllTest.exe 所在目錄下,導緻調試不能進行)。

在網上有人提到要把工程配置中的“Directories/Conditions”頁中的“Output Direcotry”清空,也就是說輸出目錄要為工程檔案所在目錄,我試了一下,将其設定為“./bin”,也同樣完全可以調試,是以輸出目錄是什麼無關緊要。

[ 補充 ] 還要注意的是,調試 dll 的時候,被調試的 dll 和宿主程式不能在同一個 Project Group中,也就是說,你不要把 dll 和宿主程式放在同一個 Project Group中再進行調試,一定要單獨打開 dll 工程進行調試。否則,調試也會不成功。 (2006-12-04 新發現)

補充:(源于fengzhizhu大俠的回複)如果上述方法不管用,那麼關閉工程,然後再打開要調試的工程,一般即可。

下一篇: HBase~hbase