DELPHI 2007 动态链接库DLL断点调试
Posted magenfeng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DELPHI 2007 动态链接库DLL断点调试相关的知识,希望对你有一定的参考价值。
( 广东联合电子服务股份有限公司, 广州510300)
作者博客:
CSDN博客:http://blog.csdn.net/magenfeng
新浪博客:
QQ空间:
1
Delphi 7.0应该是Delphi用户最多的版本。
Delphi 2007是功能就不多说了,归根结底一句话,它是AnsiString的最后一个版本,在Delphi 2007中,string类型映射为AnsiString,char类型映射为AnsiChar,Pchar类型映射为PAnsiChar。所以DELPHI低版本的程序可以较轻松地迁移到DELPHI 2007版本。Delphi 2007也是Delphi程序员很容易上手的晚期版本。
从Delphi2009开始起,到现在的Delphi XE3为止,都是unicode版本。String类型映射为UnicodeString而不是AnsiString,Char类型映射为WideChar,PChar类型映射为PWideChar。
由于Delphi 7.0、2007和2010在界面上乃至功能上的一些变化,所以在动态链接库DLL断点调试上,有较大的变化。在今后几天的时间中,笔者会以三篇文章来分别详细地介绍Delphi 7.0、2007和2010这三个版本中的DLL断点调试技术。
本篇文章来详细地介绍Delphi 2007中的动态链接库DLL断点调试技术。
2
点击菜单Run-->Parameters.打开Run Parameters窗口,在Host application中选中宿主程序,如图1所示。
设置图中断点,然后点击F9或者Run—Run来运行宿主程序Delphi2007_Dll_Debug.exe,但发现断点无效,如图2所示:
点击Project-->Options..,在Project Options窗口中,点击Compiler,选中Debug information,如图3所示:
点击Project-->Options..,在Project Options窗口中,点击Linker,可以看到Include TD32 debug Info和Include remote debug symbols两项为非选中状态,如图4所示:
选中Include TD32 debug Info和Include remote debug symbols,如图5所示:
图5
然后点击F9或者Run—Run来运行宿主程序Delphi2007_Dll_Debug.exe,但发现断点生效,如图6所示:
图6
在Delphi2007_Dll_Debug.exe,输入1和2后点击铵钮“=”,如图7所示:
图8
3
-------宿主程序代码-----
unit UDllDebug;
interface
uses
type
var
implementation
$R *.dfm
procedure TfrmDllDebug.FormCreate(Sender: TObject);
begin
end;
procedure TfrmDllDebug.FormClose(Sender: TObject;
begin
end;
procedure TfrmDllDebug.BtnAddClick(Sender: TObject);
var
begin
end;
end.
-------宿主程序代码-----
--------------DLL程序代码------------
library Magenf_Detail;
uses
$R *.RES
function
var
begin
end;
exports
end.
--------------DLL程序代码------------
备注:
在Delphi 2007中调试动态链接库DLL的时候,在宿主程序所在目录中,如果含有要调试的动态链接库DLL生成文件(扩展名为dll),为避免引起不必要的麻烦,请将其删除,然后再进行以上的调试过程。
以上是关于DELPHI 2007 动态链接库DLL断点调试的主要内容,如果未能解决你的问题,请参考以下文章