在Delphi7中調試COM+
劉曉明(Cipher)收集整理
開發COM+應用系統最令人頭痛的問題便是如何調試 COM+組件了。由於COM+是執行在COM+的執行環境中,因此Delphi 的程序員無法像Delphi的分布式多層應用系統一樣可以直接在 Delphi 的IDE 中設定應用程序服務器的斷點來調試。
事實上, Delphi 仍然可以在 Delphi 的集成開發環境中調試 COM+組件,也可以讓程序員在集成開發環境中在COM+組件的程序單元中設定斷點,然後執行客戶端應用程序調用 COM+組件。此時 Delphi 便會把執行控制權帶到Delphi 的集成開發環境中,並且暫停在程序員設定的斷點上讓程序員開始調試。從此開始,程序員就可以像調試一般的應用程序一樣來調COM+組件了。不過要如此調試COM+組件,程序員必須先做一些設定。
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
1、在Delphi 的集成開發環境中激活要被調試的 COM+ 組件項目,點Projects|Options 菜單,在彈出的對話框中選擇Linker頁,選中其中的include Td32 info 和 include remote debug symbol ;
2、點 Run|Install Com+ Objects菜單,注冊COM+組件,最好是注冊到新的應用程序,也可以注冊到已有的應用程序(這個應用程序需要是由Delphi 的注冊COM程序產生的)。
3、運行Win2000的 控制面板|管理工具|組件服務,在COM+應用程序中找到剛才COM注冊的應用程序,點右鍵,選擇“屬性”菜單,在彈出的對話框中,選擇“高級”頁,選中其中的“在調試器中啟動”選項,在下面的調試路徑中會有類似如下的內容:"C:Program FilesBorlandDelphi7Binordbg70.exe" dllhost.exe /ProcessID:{9CEC476D-83A5-4C2B-AFF1-3E83A147B866}
4、回到Delphi的集成開發環境,點選Run|Parameters 菜單,在對話框中,HostApplication設為:C:WINNTsystem32DLLHOST.EXE ,(要根據你的操作系統安裝情況設定)。 Parameters 設為:/ProcessID:{9CEC476D-83A5-4C2B-AFF1-3E83A147B866};這個GUID的值要和Win2000組件服務中的屬性值一致,可以從那邊直接COPY過來。
5、設置斷點,在Delphi的集成開發環境中運行COM;
6、在Windows中(或新開的Delphi環境中)運行調用這個COM的客戶端程序。
這時會發現,Delphi開發環境中的COM停在斷點處了,就可以接下來單步跟蹤調試了。