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