




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、Good is good, but better carries it.精益求精,善益求善。DELPHI 2007 動態鏈接庫DLL斷點調試-DELPHI2007動態鏈接庫DLL斷點調試馬根峰(廣東聯合電子服務股份有限公司,廣州510300)Delphi幾個經典版本簡介Delphi從1995年的1.0版本,發展到現在的最新的XE3版本,歷經N多版本,但最為經典的幾個版本個人覺得應屬7.0、2007和2010。Delphi7.0應該是Delphi用戶最多的版本。Delphi2007是功能就不多說了,歸根結底一句話,它是AnsiString的最后一個版本,在Delphi2007中,string類型
2、映射為AnsiString,char類型映射為AnsiChar,Pchar類型映射為PAnsiChar。所以DELPHI低版本的程序可以較輕松地遷移到DELPHI2007版本。Delphi2007也是Delphi程序員很容易上手的晚期版本。從Delphi2009開始起,到現在的DelphiXE3為止,都是unicode版本。String類型映射為UnicodeString而不是AnsiString,Char類型映射為WideChar,PChar類型映射為PWideChar。由于Delphi7.0、2007和2010在界面上乃至功能上的一些變化,所以在動態鏈接庫DLL斷點調試上,有較大的變化。在
3、今后幾天的時間中,筆者會以三篇文章來分別詳細地介紹Delphi7.0、2007和2010這三個版本中的DLL斷點調試技術。本篇文章來詳細地介紹Delphi2007中的動態鏈接庫DLL斷點調試技術。DELPHI2007DLL斷點設置與DLL調試在DELPHI7.0以及以前的版本中,動態鏈接庫的調試方法如下:點擊菜單Run-Parameters.打開RunParameters窗口,在Hostapplication中選中宿主程序,如圖1所示。圖1打開RunParameters窗口,在Hostapplication中選中宿主程序設置圖中斷點,然后點擊F9或者RunRun來運行宿主程序Delphi200
4、7_Dll_Debug.exe,但發現斷點無效,如圖2所示:圖2設置斷點后,運行宿主程序Delphi2007_Dll_Debug.exe,斷點無效點擊Project-Options.,在ProjectOptions窗口中,點擊Compiler,選中Debuginformation,如圖3所示:圖3在ProjectOptions窗口中,點擊Compiler,選中Debuginformation點擊Project-Options.,在ProjectOptions窗口中,點擊Linker,可以看到IncludeTD32debugInfo和Includeremotedebugsymbols兩項為非選中
5、狀態,如圖4所示:圖4IncludeTD32debugInfo和Includeremotedebugsymbols兩項為非選中狀態。選中IncludeTD32debugInfo和Includeremotedebugsymbols,如圖5所示:圖5選中IncludeTD32debugInfo和Includeremotedebugsymbols。然后點擊F9或者RunRun來運行宿主程序Delphi2007_Dll_Debug.exe,但發現斷點生效,如圖6所示:圖6運行宿主程序,發現斷點生效在Delphi2007_Dll_Debug.exe,輸入1和2后點擊銨鈕“=”,如圖7所示:圖7在Delp
6、hi2007_Dll_Debug.exe,輸入1和2后點擊銨鈕“=”進入DLL斷點調試,如圖8所示:圖8進入DLL的斷點調試例子中的宿主程序及DLL程序代碼-宿主程序代碼-unitUDllDebug;interfaceusesWindows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,Dialogs,StdCtrls,ExtCtrls,Buttons,Contnrs,ActiveX,StrUtils;typeTDll_Add=function(int_1,int_2:integer):integer;stdcall;Tf
7、rmDllDebug=class(TForm)Edit1:TEdit;Edit2:TEdit;Label1:TLabel;Edit3:TEdit;BtnAdd:TButton;procedureFormCreate(Sender:TObject);procedureFormClose(Sender:TObject;varAction:TCloseAction);procedureBtnAddClick(Sender:TObject);privatePrivatedeclarationspublicPublicdeclarationsHInst:Thandle;FDll_Add:TFarProc
8、;functionDll_Add:TDll_Add;/aForeThread:MuliThread;end;varfrmDllDebug:TfrmDllDebug;implementation$R*.dfmprocedureTfrmDllDebug.FormCreate(Sender:TObject);beginhinst:=loadlibrary(Magenf_Detail.dll);ifhinst0thenbeginFDll_Add:=getprocaddress(hinst,pchar(Dll_Add);ifFDll_AddnilthenfunctionDll_Add:=TDll_Add
9、(FDll_Add)elsemessagedlg(Fatalerror!Functionnotbefound!,mtWarning,mbYes,0);endelsemessagedlg(Fatalerror!Magenf_Detail.dllnotbefound!,mtWarning,mbYes,0);end;procedureTfrmDllDebug.FormClose(Sender:TObject;varAction:TCloseAction);begintryfreelibrary(hinst);exceptend;end;procedureTfrmDllDebug.BtnAddClic
10、k(Sender:TObject);varint1,int2,int_return:integer;beginint1:=strToInt(edit1.Text);int2:=strToInt(edit2.Text);int_return:=functionDll_Add(int1,int2);edit3.Text:=intToStr(int_return);end;end.-宿主程序代碼-DLL程序代碼-libraryMagenf_Detail;usesSysUtils,Classes;$R*.RESfunctionDll_Add(int_1,int_2:integer):integer;stdcall;varintSum:integer;beginintSum:=i
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 介紹超市活動方案
- 倉儲公司走秀活動方案
- 倉庫擴容活動方案
- 薇諾娜品牌手冊
- 代賬公司周年活動方案
- 以樂之名活動方案
- 以色列交友活動方案
- 儀表文明活動方案
- 任務類親子活動方案
- 企業福利活動方案
- 哮喘急性發作的病情評估與處理
- 2024秋期國家開放大學《國際法》一平臺在線形考(形考任務1至5)試題及答案
- 中華文明的起源與早期國家課件
- Unit 8 I come from China. (教學設計)-2023-2024學年湘少版(三起)英語四年級下冊
- 糖尿病并發癥
- 2024版勞動合同法全文txt
- 遼寧省2024年高中歷史1月學生學業水平考試試題含解析
- 2012年重慶物理高考題及答案解析
- 江蘇自然資源廳事業單位筆試真題2024
- 茶樓股東合作協議范本
- HG+20231-2014化學工業建設項目試車規范
評論
0/150
提交評論