在Delphi7中調試COM+
開發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停在斷點處了,就可以接下來單步跟蹤調試了。