请详细说明如何调试COM+;我现在已经做了的工作有
1.project-〉options-〉linker-〉include Td32 info 和 include remote debug symbol 选上
2.运行RUN|PARAMETERS
HOST APPLICATION 填入 {系统路径}\system32\dllhost.exe
PARAMETERS 填入 /processID:{xxxxxxxxxxxxxxxxxxxxxxxxxxxxx}
3.打开组件管理
选择组件安装所在的组的属性,在高级这页里选择调试,这里的调试器路径应该设成什么内容? 请具体说明.
4.需要打开几个Delphi才能调试?具体怎么操作?客户端是不是也要在Delphi中运行才行.
1.project-〉options-〉linker-〉include Td32 info 和 include remote debug symbol 选上
2.运行RUN|PARAMETERS
HOST APPLICATION 填入 {系统路径}\system32\dllhost.exe
PARAMETERS 填入 /processID:{xxxxxxxxxxxxxxxxxxxxxxxxxxxxx}
3.打开组件管理
选择组件安装所在的组的属性,在高级这页里选择调试,这里的调试器路径应该设成什么内容? 请具体说明.
4.需要打开几个Delphi才能调试?具体怎么操作?客户端是不是也要在Delphi中运行才行.
公共函数
procedure WriteInfo(str : string);
var
TF : TIniFile;
begin
TF:= TIniFile.Create('G:\我的文档\D7\DFMC_TreeView\error.ini');
TF.WriteString('Error','Msg',str);
end;
在估计出错的地方之前调用,然后去看看输出的字符,这个方法比较笨,
好像有人搞定了,可惜我测试没有通过
终于摸索出正确的方法来了,要求版主增加我的专家分.方法是:
在Delphi中做好COM+以后,project-〉options-〉linker-〉include Td32 info 和 include remote debug symbol 选上;
然后,在Delphi中注册COM+组件,注册到一个新的应用程序.
打开Windows的组件服务中的COM+应用程序,找到刚才新建的应用程序,在属性的高级页中,选上"在调试器中启动选项",这时你会发现自动生成了调试器路径,这个路径(特别是后面的GUID参数)一定不要改.
最后,回到Delphi,RUN|PARAMETERS
HOST APPLICATION 填入 {系统路径}\system32\dllhost.exe
PARAMETERS /processID:{xxxxxxxxxxxxxxxxxxxxxxxxxxxxx} 这里的参数用刚才在组件管理器中自动生成的GUID参数
在Delphi的COM+工程中运行.这时另外运行一个客户端程序(不一定要在Delphi中运行),当它调用刚才的COM+时,Delphi的COM+工程就会停在你设好的断点上.关键:顺序不要弄反,是先设好组件属性,最后再设Delphi的运行参数.
刘晓明(Cipher)收集整理
开发COM+应用系统最令人头痛的问题便是如何调试 COM+组件了。由于COM+是执行在COM+的执行环境中,因此Delphi 的程序员无法像Delphi的分布式多层应用系统一样可以直接在 Delphi 的IDE 中设定应用程序服务器的断点来调试。
事实上, Delphi 仍然可以在 Delphi 的集成开发环境中调试 COM+组件,也可以让程序员在集成开发环境中在COM+组件的程序单元中设定断点,然后执行客户端应用程序调用 COM+组件。此时 Delphi 便会把执行控制权带到Delphi 的集成开发环境中,并且暂停在程序员设定的断点上让程序员开始调试。从此开始,程序员就可以像调试一般的应用程序一样来调COM+组件了。不过要如此调试COM+组件,程序员必须先做一些设定。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 Files\Borland\Delphi7\Bin\bordbg70.exe" dllhost.exe /ProcessID:{9CEC476D-83A5-4C2B-AFF1-3E83A147B866}
4、回到Delphi的集成开发环境,点选Run|Parameters 菜单,在对话框中,HostApplication设为:C:\WINNT\system32\DLLHOST.EXE ,(要根据你的操作系统安装情况设定)。 Parameters 设为:/ProcessID:{9CEC476D-83A5-4C2B-AFF1-3E83A147B866};这个GUID的值要和Win2000组件服务中的属性值一致,可以从那边直接COPY过来。
5、设置断点,在Delphi的集成开发环境中运行COM;
6、在Windows中(或新开的Delphi环境中)运行调用这个COM的客户端程序。
这时会发现,Delphi开发环境中的COM停在断点处了,就可以接下来单步跟踪调试了。
2.运行RUN|PARAMETERS
HOST APPLICATION 填入 {系统路径}\system32\dllhost.exe
PARAMETERS 填入 /processID:{xxxxxxxxxxxxxxxxxxxxxxxxxxxxx}processID是组件管理器中你的COM+中的参数,把“在调试器中启动”项打勾后会看到。
复制到delphi RUN|PARAMETERS下就行了。3.打开组件管理
选择组件安装所在的组的属性,在高级这页里选择调试,这里的调试器路径应该设成什么内容? 请具体说明.这个系统默认就可。4.需要打开几个Delphi才能调试?具体怎么操作?客户端是不是也要在Delphi中运行才行.要打开两个DELPHI。最好要调试的COM+应用程序源文件先打开。
不行的话打delphi和com+的补丁。