Delphi调试dll文件

完整的调试 DLL方法如下:

 

1)新建一个 DLL 工程,名字就叫 MyDll 吧,编译后生成 MyDll.dll,我们要调试的就是它了。

2)新建一个用来调试 MyDll 的 Application 工程,名字就叫 MyDllTest 吧,编译后生成的可执行性文件为 MyDllTest.exe,这就是我们用来调试 MyDll.dll 的宿主程序

3)MyDllTest.exe 所在目录中不能有 MyDll.dll(重要!)

4)MyDllTest 采用静态调用的方法调用 MyDll.dll 的导出函数(重要!)

5)进入 MyDll 工程,执行菜单“Run”->“Parameters”,将弹出的对话框的 Local 页中的“Host Application”设置为上面的 MyDllTest.exe(含路径)

完成以上步骤,就可以在 MyDll 工程中执行“Run”了,也可以进行调试。

以上3)、4)、5)为重点,第三点在大多数网上的解答中都没有提到,也是我使用时时灵时不灵的原因(不清楚这个原因前,我还特地把 MyDll.dll 复制到 MyDllTest.exe 所在目录下,导致调试不能进行)。

在网上有人提到要把工程配置中的“Directories/Conditions”页中的“Output Direcotry”清空,也就是说输出目录要为工程文件所在目录,我试了一下,将其设置为“./bin”,也同样完全可以调试,因此输出目录是什么无关紧要。

[ 补充 ] 还要注意的是,调试 dll 的时候,被调试的 dll 和宿主程序不能在同一个 Project Group中,也就是说,你不要把 dll 和宿主程序放在同一个 Project Group中再进行调试,一定要单独打开 dll 工程进行调试。否则,调试也会不成功。 (2006-12-04 新发现)

 

相关文章:

在delphi中调试dll的方式 http://blog.csdn.net/yzhtwo/archive/2010/11/18/6019240.aspx

 

Ps:经过不断尝试,发现MyDllTest.exe所在目录中可以有MyDll.dll存在,相反,如果MyDll.dll不存在,就不能F8单步调试。对于调试单个Dll文件,这种方法是可用的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值