我的难题:COM组件调试!!!!!请各位帮帮忙了,我实在不行了,,,(100分)

  • 主题发起人 主题发起人
  • 开始时间 开始时间
可以跟踪调试的,把COM程序运行在DELPHI的环境下,就可以了,无调试个5个以上的COM组件
 
to wwwjjjccc
能否说一下调试的步骤,谢谢了!
 
introbob只可用于ISAPI或CGI,
 
to hbffff
我倒,我调的COM组件呢,,,
 
1.运行RUN|PARAMETERS
HOST APPLICATION 填入 {系统路径}/system32/dllhost.exe
PARAMETERS 填入 /processID:{xxxxxxxxxxxxxxxxxxxxxxxxxxxxx}
2.打开组件管理
选择组件安装所在的组的属性,在高级这页里选择调试,打勾就可以了。
 
to yu_gao
/processID:{xxxxxxxxxxxxxxxxxxxxxxxxxxxxx}
^^^^^^^^^^^^^
这个可以从那里得到??在是不是在工程文件里?
 
我提供一个自己摸索的绝对简单有效的方法:
1 先键一PROJECT1,做你的COM1,调试(这时是进程外COM服务器,可随意调试)
2 另键一ACTIVEX DLL,新键一个COM2,这时将COM1的接口文件和COCLASS文件COPY
(在PROJECT1的TYPE LIBRARY 中)到ACTIVEX DLL的TYPE LIBRARY ,这时,两个
COM实际是一个(因为接口和COCLASS相同)
3 将PROJECT1和ACTIVEX DLL的库文件名该成一致(还是在TYPE LIBRARY 中改)
4 用PROJECT1的COCLASS的UNIT覆盖ACTIVEX DLL的COCLASS的UNIT
注册后你会发现你同时作了进程外和进程内两个服务器,
正是通过易调的进程外服务器,间接生成进程内服务器
 
大家没有什么再好的办法了吗???
 
给所有在DELPHI中遇到调试组件问题的朋友们:
找到 [red]李维[/red]的那本书 《DELPHI 5 ADO/MTS/COM+高级程序设计》,
按书中有关调试的步骤做。
但一定要[yellow]注意[/yellow],组件代码处于集成开发环境下中,并设断点,
然后在集成开发环境外直接运行调用组件的客户端exe程序,就可以跟踪到组件代码中了。
客户端程序不能同时处于调试环境中,还是有些遗憾啊[:(]
 
to yu_gao
好像不行耶.delphi4 :(
 
搞定!!!!
看了各位的信息,终于找到答案,搞的我差点要去书店了呵呵[:D]
调试方法如下:
在停止组件服务后作以下步骤
1,在你的Com+的project中run 菜单下添入以下信息
c:/WINNT/system32/dllhost.exe host
/processID:{********************}para 其中,*************是在注册后在windows中的
信息,可以从组件服务中获得这个号,他不是com的GUID
2,在'组件服务'注册组件组的地方点右键,选择属性
3,在属性的"高级"页中设置"调试路径",录入:
C:/Program Files/Borland/delphi4/Bin/delphi32.exe dllhost.exe /ProcessID:{****}
最后的****与第1步的号一致
4,在delphi中运行,你会发现:com+在等候联结.....
5,然后....调试
一个好消息是,各位都认为不能够进行CS同时调试,其实,就刚才的说明,同时调试是完全可以
的.
呵呵.
擦擦汗....希望能够给大家解决问题了.
 
其实是李维没有说明!
您在按照李维的设置进行了同样的设置之后,编译您的COM+。然后在您机器的启动的服务程序
中选择COM+ EVENT服务,右击选择“重新启动”
然后您就可以进行调试了。
希望能够对您有所帮助。
给分!
 
我的进程外com,做一个application使用它,可以调试的说[:)]
 
我在XP用D6发现一个怪事。竟然不能调试COM+。气的我差一点给Format,想想60G*2的硬盘
东西装的太多了,再装2000实在是麻烦就没有动。
前两天在公司没事,我又想起了这个问题,就在公司的机器上写了一个很简单的程序试试。
竟然能调试。看来不是系统的问题。可能是别的问题。因为公司的机器也是XP加D6。
一下班我就赶紧回家试试。发现以前写的还是不能调试。这就怪了,在公司都可以的,怎么
在家就不行。
我就又更新写了一个简单的程序试试,一试试能调试。我又仔仔细细的核对两个程序的配置
了N便发现都一样。但就是不能调试。我百思不得其解。
我就抱着试试看的态度,把简单的COPY到以前的程序目录中试试,一试也不能调试……
好了费话少说。进入正题:
用D6在XP上开COM+组件不能调试的解快办法(别的环境是不是这个问题没有试过,谁有兴趣的话试一下):
1.程序不能放在中文目录下。
2.生成的DLL不能放在别的目录。也就是在Option中不要设置文件输出路径。
环境:Windows XP Corp版+中文语言包、Delphi 6 SP1
 
TO 枫:
还没搞得?
像yu_gao说的:
注册完COM组件到一个组件包后,在组件管理那里就可以找到此组件包的注册信息了!
右击此组件包=》属性,在它的属性里有组件包的ID,把此替代后面的那段xxx就行了
1.运行RUN|PARAMETERS
HOST APPLICATION 填入 {系统路径}/system32/dllhost.exe
PARAMETERS 填入 /processID:{xxxxxxxxxxxxxxxxxxxxxxxxxxxxx}
 
to Dephic
呵呵,,不好意思,最近公司的事比多,自己的事情就先放下了。
to everybody
谢谢大家回这个贴子,这100分实不够分的了,我会在另一个贴子上把分给点分给各位,再次谢谢大家。
我希望大家还有什么调试COM及COM+好办法都贴上来,我改天把这个贴子总结一下,再贴出来
给大家看,毕竟不会调试COM和COM+的朋友还有很多,希望他们都可以从你们的方法学习调试COM
 
告诉大家一个最简单的办法,不管是dll的,还是exe的都没问题。
要调试com时候,在project manage中新加一个exe,写入调试代码,在com中设置断点
然后运行com,没错,哪怕是dll也运行一次,别怕他说你错了,再运行用于调试的exe
程序,测试,会发觉停在断点出了,然后就可以单步运行了,是在看上去没运行的dll
了里单步!
 
COM/DCOM的调试与DLL的调试大同小意,就如Dephic所说,若需在集成环境下同时调试客户端和服务器,其实很简单,说出来大家别笑,同时启动两个Delphi就搞定了,哈哈!
 
to everybody
ido
not debug it yet
 
真不明白为何说不能跟踪???
难道不能动态的创建COM对象?把COM对象的UNIT添加到一个NEW PROJECT这样不行吗??
 
后退
顶部