开发COM 应用系统最令人头痛的问题便是如何调试COM 组件了。由于COM 是执行在COM 的执行环境中,因此Delphi的程序员无法像Delphi的分布式多层应用系统一样可以直接在Delphi的IDE中设定应用程序服务器的断点来调试。

事实上,Delphi仍然可以在Delphi的集成开发环境中调试COM 组件,也可以让程序员在集成开发环境中在COM 组件的程序单元中设定断点,然后执行客户端应用程序调用COM 组件。此时Delphi便会把执行控制权带到Delphi的集成开发环境中,并且暂停在程序员设定的断点上让程序员开始调试。从此开始,程序员就可以像调试一般的应用程序一样来调COM 组件了。不过要如此调试COM 组件,程序员必须先做一些设定。

<?xml:namespaceprefix=ons="urn:schemas-microsoft-com:office:office"/>

1、在Delphi的集成开发环境中激活要被调试的COM 组件项目,点Projects|Options菜单,在弹出的对话框中选择Linker页,选中其中的includeTd32info和includeremotedebugsymbol;

2、点Run|InstallCom Objects菜单,注册COM 组件,最好是注册到新的应用程序,也可以注册到已有的应用程序(这个应用程序需要是由Delphi的注册COM程序产生的)。

3、运行Win2000的控制面板|治理工具|组件服务,在COM 应用程序中找到刚才COM注册的应用程序,点右键,选择“属性”菜单,在弹出的对话框中,选择“高级”页,选中其中的“在调试器中启动”选项,在下面的调试路径中会有类似如下的内容:"C:ProgramFilesBorlandDelphi7Binordbg70.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停在断点处了,就可以接下来单步跟踪调试了。

转载于:https://www.cnblogs.com/spiritofcloud/p/3976165.html

在Delphi7中调试COM相关推荐

  1. ECLIPSE远程调试出现如下问题 ECLIPSE中调试代码提示找不到源

    ECLIPSE远程调试出现如下问题  ECLIPSE中调试代码提示找不到源 如此提示是由于没有JAR包中找不到MAIN,可以手动添加或自己修改 利用ECLIPSE填写JAR中的MAIN方法后,就可以调 ...

  2. pl sql如何调试oracle存储过程,PL/SQL Developer中调试oracle的存储过程

    作者:iamlaosong 唉,真土,之前用Toad,1直用dbms_output.put_line调试存储进程,只觉得不方便,用上PL/SQL Developer后,习惯性的还是用这个方法,人都是有 ...

  3. 【Windows 逆向】OD 调试器工具 ( CE 中获取子弹动态地址前置操作 | OD 中调试指定地址的数据 )

    文章目录 一.CE 中获取子弹动态地址前置操作 二.OD 中调试子弹数据 一.CE 中获取子弹动态地址前置操作 在上一篇博客 [Windows 逆向]OD 调试器工具 ( CE 工具通过查找访问的方式 ...

  4. 【Android 逆向】修改运行中的 Android 进程的内存数据 ( Android 系统中调试器进程内存流程 | 编译内存调试动态库以及调试程序 )

    文章目录 一.Android 系统中调试器进程内存流程 二.编译内存调试动态库以及调试程序 三.博客资源 一.Android 系统中调试器进程内存流程 修改游戏运行中的内存 , 游戏运行之后 , 游戏 ...

  5. 在VS中调试C#程序,如何查看内存、寄存器、反汇编

    在VS2005中调试C#程序时,有时你会想查看C#代码的汇编代码.内存情况.寄存器情况. 想查看反汇编代码,可在代码窗口中点右键->选择"转到反汇编"即可.在汇编代码窗口中, ...

  6. 天生一对Maven2+Jetty -- Maven2创建并管理WebApp,并使用Maven Jetty Plugin在Eclipse中调试...

    天生一对"Maven2+Jetty" -- Maven2创建并管理WebApp,并使用Maven Jetty Plugin在Eclipse中调试 Maven2代比1代改进很多,其中 ...

  7. 在Visual Studio中调试samples中可能出现的错误

    在Visual Studio中调试samples中可能出现的错误 进入samples/opencl文件夹下,打开OpenCLSamples.sln,然后选择" 生成 -> 重新生成解决 ...

  8. 在Chrome 中调试Javascript

    在前面的两篇文章中我们讲了如何在IE中调试Javascript和在Visual Studio中调试Javascript,在本篇内容中,我们讲一下如何在谷歌 Chrome中调试Javascript. C ...

  9. Mex文件在VS2010中调试方法

    Mex文件在VS2010中调试方法 matlab里面无法单步调试mex函数,故需转到VS上面调试,这里采用VS2010. 参考网上很多人写的方法但都很乱,杂,试了多次都没有成功.今天终于解决了,现把方 ...

最新文章

  1. ASP.NET超凡的代码控制
  2. 关于“托管代码”和“非托管代码”
  3. java源码 - ReentrantReadWriteLock介绍
  4. python辅导机构_推荐靠谱python辅导机构!
  5. 内齿轮泵行业调研报告 - 市场现状分析与发展前景预测
  6. Android实战——LeakCanary检测内存泄漏
  7. c语言新手入门项目代码
  8. CAD中插入外部参照字体会变繁体_CAD缺字体时为什么有些字体无法替换?大字体什么意思?什么是形文件?...
  9. 大学四年我是如何学习程序设计的
  10. springboot项目在外部tomcat运行出现的问题
  11. linux下hg无法运行_Linux 无法启动常见的几种原因及解决办法
  12. android vrs技术,步步高 vivo V1/Y1 智能手机音质测评报告 VRS[vivo signal
  13. HyperLynx仿真(一)LineSim简单介绍
  14. 《信息物理融合系统(CPS)设计、建模与仿真——基于 Ptolemy II 平台》——1.9 案例研究...
  15. 十年架构师留下最完整的Java学习路线,学完年薪40W
  16. js笔记--BOM编程
  17. WAS以及weblogic日志说明
  18. 辽宁省盘锦市谷歌高清卫星地图下载
  19. 光谱数据计算CIE值(三刺激值、CIE1931、CIE1976、CCT)软件人品大家自己看
  20. [c++] insert和emplace的区别

热门文章

  1. 汇编---输出AX的地址值
  2. 记录 之 不同的Normalization方式
  3. Ubuntu : 未找到 ‘nm-tool‘ 命令
  4. linux快捷命令补齐,Linux Shell简介——自动补齐/命令行的历史记录/编辑命令行/可用的 Shell 快捷方式.doc...
  5. java数据库易错程序题_JAVA程序改错 (易错题)(示例代码)
  6. C 语言 方法外部的数组与普通变量传入方法内部时的区别
  7. Hadoop IO 文件压缩 序列化
  8. java jar包冗余_paip.批处理清理java项目冗余jar的方法
  9. 频段表_VoLTE高低频段覆盖能力研究
  10. 计算机职称在线考试报名系统,2020年计算机职称考试网上如何报名