全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1630
推到 Plurk!
推到 Facebook!

如何在DLL中设置断点。

尚未結案
yr012345
一般會員


發表:4
回覆:14
積分:3
註冊:2003-02-11

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-02-12 13:43:16 IP:211.98.xxx.xxx 未訂閱
各位高手: 我发现C Builder 在主程序中可以设置断点,运行到断点后用F8键可以逐行执行,但在 dll中就不行了,请各位高手赐教。谢谢!
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-02-12 13:59:19 IP:203.73.xxx.xxx 未訂閱
yr012345 你好: 你必須從 BCB 的 IDE 中選擇 Run/Parameters 然後在 Host Application 裡面指定一個 EXE(用來啟動你的 DLL) 在你的 DLL 程式碼中所設的中斷點就會有效了 --
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
yr012345
一般會員


發表:4
回覆:14
積分:3
註冊:2003-02-11

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-02-13 14:17:25 IP:211.98.xxx.xxx 未訂閱
先謝謝您的回答,但我的dll run->parameter中已有host了,dll可以運行,但在斷點處不停(在主程序中的斷點可以停)。
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-02-13 14:26:07 IP:203.73.xxx.xxx 未訂閱
yr012345 你好:
(1)因為現在要單步執行的是你的 DLL Project,所以在你的 BCB 中開啟的應
   該是 DLL Project,而不是 EXE 的 Project....
(>    -- 
        
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
yr012345
一般會員


發表:4
回覆:14
積分:3
註冊:2003-02-11

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-03-15 21:37:43 IP:211.98.xxx.xxx 未訂閱
我发现是目录设置的问题,例如, 主程序工程main.bpr 和源码放在目录 c:\project\main mydll工程和源码放在 c:\project\dll\mydll\ 主程序的main.exe 和.mydll.dll都放在 c:\project\dll当然,在mydll的parameter中填入c:\project\dll\main.exe 我发现若将dll工程文件mydll.bpr放在c:\profect\dll\mydll,断点就不能停, 若将工程用save as 存在c:\project中\dll,断点就可以停。
yr012345
一般會員


發表:4
回覆:14
積分:3
註冊:2003-02-11

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-03-15 21:37:59 IP:211.98.xxx.xxx 未訂閱
我发现是目录设置的问题,例如, 主程序工程main.bpr 和源码放在目录 c:\project\main mydll工程和源码放在 c:\project\dll\mydll\ 主程序的main.exe 和.mydll.dll都放在 c:\project\dll当然,在mydll的parameter中填入c:\project\dll\main.exe 我发现若将dll工程文件mydll.bpr放在c:\profect\dll\mydll,断点就不能停, 若将工程用save as 存在c:\project中\dll,断点就可以停。
dllee
站務副站長


發表:321
回覆:2519
積分:1711
註冊:2002-04-15

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-03-15 22:44:00 IP:203.204.xxx.xxx 未訂閱
引言: 我发现是目录设置的问题,例如, 主程序工程main.bpr 和源码放在目录 c:\project\main mydll工程和源码放在 c:\project\dll\mydll\ 主程序的main.exe 和.mydll.dll都放在 c:\project\dll当然,在mydll的parameter中填入c:\project\dll\main.exe 我发现若将dll工程文件mydll.bpr放在c:\profect\dll\mydll,断点就不能停, 若将工程用save as 存在c:\project中\dll,断点就可以停。
我想請問,您指的是否是將 .exe , .dll 及 .bpr 都要放在同一個目錄下就可以了呢?因為我也有相同的困擾(但有時可以設中斷有時不行),而我的檔案放置方法是 c:\project放置所有的 .cpp/.h/.bpr 所有的 source c:\project\exe放置所有產出的 .exe/.dll 沒空更新的網頁... http://coolsite.to/dllee C及指標教學,計算機概論,資訊管理導論... http://home.kimo.com.tw/dllee.tw http://coolsite.to/ushells 介紹Shells,LiteStep,GeoShell....
------
http://www.ViewMove.com
yr012345
一般會員


發表:4
回覆:14
積分:3
註冊:2003-02-11

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-03-16 08:30:38 IP:211.98.xxx.xxx 未訂閱
dllee你好,只需将dll的bpr文件与exe,dll放在同一目录即可,这样可能有些不方便, 因为dll 的source code在一个目录,而它的.bpr却在别的目录,但我觉得只要在调试时 将.bpr save as到exe,dll所在目录,调完后在save as 到与dll source code相同的目 录即可。 实际上我觉得应该还有别的方法,但可能需要调环境设置参数,我试了多次没有找到更 方便的办法,哪位如果有更好的办法,请赐教。
firewing
一般會員


發表:23
回覆:47
積分:19
註冊:2002-12-13

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-03-26 17:07:35 IP:139.223.xxx.xxx 未訂閱
RaynorPao 兄: 請問一下,我依照你的方法在dll中設斷點... 程式如下: extern "C" __declspec(dllexport) void __stdcall SetReg(HWND); int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved) //<<-----這裡可以單步執行 { return 1; } //-------------------------------------------------------------------- void __stdcall SetReg(HWND *Handle)// <<--但我將斷點設在此行就沒有用了 { XXX... XXX.... } 為什麼會這樣呢??? 我在 RUN->Parameters->Host Application 我有指定 那在 Parameters 需要設定嗎???
snh
一般會員


發表:5
回覆:7
積分:2
註冊:2002-09-30

發送簡訊給我
#10 引用回覆 回覆 發表時間:2003-04-21 20:37:37 IP:140.113.xxx.xxx 未訂閱
我覺得並不是將所有的文件放在一起就可以了 也不是分開放就不行 不過我也在煩惱要怎麼用 希望有成功的人能把成功的project分享出來 大家來比較一下可以和不可以的差異
jeff_cheng
一般會員


發表:0
回覆:1
積分:0
註冊:2003-04-30

發送簡訊給我
#11 引用回覆 回覆 發表時間:2003-05-27 17:39:40 IP:211.21.xxx.xxx 未訂閱
引言: -------------------------------------------------------------------------------- 我发现是目录设置的问题,例如, 主程序工程main.bpr 和源码放在目录 c:\project\main mydll工程和源码放在 c:\project\dll\mydll\ 主程序的main.exe 和.mydll.dll都放在 c:\project\dll当然,在mydll的parameter中填入c:\project\dll\main.exe 我发现若将dll工程文件mydll.bpr放在c:\profect\dll\mydll,断点就不能停, 若将工程用save as 存在c:\project中\dll,断点就可以停。 -------------------------------------------------------------------------------- 應該是mydll.bpr的final output沒設定的原因 在 project->options...->directories/conditionals中的final output設定為c:\project\dll就可以
foxpeng
一般會員


發表:0
回覆:1
積分:0
註冊:2004-02-06

發送簡訊給我
#12 引用回覆 回覆 發表時間:2004-02-06 10:59:56 IP:61.222.xxx.xxx 未訂閱
我的情況是將 project/options/linker頁面中 左下角的 EXE and DLL options中的 include remote debug symbols 勾起來就ok了 ****************************************** 另外聽到的一個說法是(我沒試過,用上面就ok了) Tools/Debugger Options/General頁面下 DEBUG DCU PATH去設定你放dcu的目錄
系統時間:2024-04-20 2:47:32
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!