今天遇到的一问题主应用程序要调用Dll的入口点函数检测相关事件是否成功,其中有些达不到预想的效果,所以每次都要去修改dll然后再编译,很是麻烦,因此上网查有关调试技巧。得到以下答案,贴出给遇到此类问题的人共享之。
上述方法都不可以在Dll中设置断点调试,发现这个可以。


在delphi中调试dll的方式 收藏
传统上在delphi中调试dll的方式,在run|Parmeter…中设置Host Applicatin的参数。我想说明的是,这有二个问题。
1. 不能调试动态载入的dll。
2. 静态载入的虽然能调试,但一次运行只调试一个,对其他的dll无法调试。
通过一段时间的摸索,终于找到了一个方法,很好的解决了上面的二个问题。而且不用设置Host Applicatin的参数。
举一动态载入的例子。
1、 在delphi中新建一个工程组。在工程组在新建一个主程序和dll工程。并设置exe和dll输出目录为同一目录。
2、分别编译dllMain.exe和TestDll工程。
3、按运行按钮,运行主程序dllMain.exe。
4、主程序中在加载动态链接库时设置断点,如图
5、再按F8单步运行。
打开view|DebugWindows|Module ,在模块名中找到刚才加载进去的TestDll的名称,并双击。如图
在下面的TreeView中找到TestDll工程的单元名并双击。
在delphi代码编辑器可以看到在TestDll工程文件中可以设置断点并且有效了。如图