請問DebugView 要如何使用? |
|
mp_0223
一般會員 ![]() ![]() 發表:16 回覆:32 積分:9 註冊:2006-10-02 發送簡訊給我 |
|
RaynorPao
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
(1)下載DebugView (網址 http://www.microsoft.com/technet/sysinternals/Miscellaneous/DebugView.mspx),此網頁內也有簡單的使用說明
(2)下載完成之後,解開壓縮檔會有一個檔案 DbgView.exe (檔案 DbgView.chm也有使用說明),執行此執行檔就會看到一個 DebugView 視窗 (3)然後再你 BCB 的 Project 中加入以下的程式碼(看要加在哪裡,自己決定,主要是你想在 runtime 期間,顯示出來的訊息) 例如: #include "stdio.h" void __fastcall TForm1::Button1Click(TObject *Sender) { OutputDebugString("Button1Click"); } void __fastcall TForm1::Button2Click(TObject *Sender) { AnsiString sDebug="Button2Click"; OutputDebugString(sDebug.c_str()); } void __fastcall TForm1::Button3Click(TObject *Sender) { int i=100; AnsiString sDebug; OutputDebugString("Button3Click"); sDebug="i=" IntToStr(i); OutputDebugString(sDebug.c_str()); } (4)重新編譯你的 Project,然後在外部執行(不在 BCB 開發環境中執行,也就是直接用滑鼠執行你編譯好的 exe 檔),然後分別按 Button1,Button2,Button3,就可以看到在(3)中加的那些 Debug 訊息,顯示在(2)的視窗中
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 -- |
mp_0223
一般會員 ![]() ![]() 發表:16 回覆:32 積分:9 註冊:2006-10-02 發送簡訊給我 |
|
RaynorPao
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
也就是你的專案儲存的目錄(例如: C:\Project\Project1),你所編譯出來的執行檔(exe檔,例如: Project1.exe),就會儲存在那裡,你只要利用 Windows 的檔案總管,找到這個執行檔(exe檔,例如: Project1.exe),然後用滑鼠連續點兩下,就可以執行了!
備註: 如果你不知道自己的專案儲存在哪個目錄底下,可在 BCB 開發環境中,按「File/Save Project As」就可以知道了!
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 -- |
mp_0223
一般會員 ![]() ![]() 發表:16 回覆:32 積分:9 註冊:2006-10-02 發送簡訊給我 |
|
taishyang
站務副站長 ![]() ![]() ![]() ![]() ![]() ![]() 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
|
mp_0223
一般會員 ![]() ![]() 發表:16 回覆:32 積分:9 註冊:2006-10-02 發送簡訊給我 |
1.先打開Debug.exe ,我有看到一個視窗
2.程式中加入要Debug的地方 void __fastcall TForm1::Button5Click(TObject *Sender) { OutputDebugString("Button5Click"); <---加在這裡 Graphics::TBitmap *Bitmap1 = new Graphics::TBitmap(); if (Image1->Picture->Bitmap->Empty==true) ShowMessage("請載入圖檔!!"); Byte *ptr; Bitmap1->LoadFromFile("A.bmp"); Image2->Picture->Assign(Bitmap1); int r,g,b; int gray; int i,j; Bitmap1->Assign(Image2->Picture->Bitmap); Bitmap1->PixelFormat = pf24bit;//24bit for(j=0;j { ptr = (Byte *)Bitmap1->ScanLine[j]; for(i=0;i { b=ptr[i*3]; g=ptr[i*3 1]; r=ptr[i*3 2]; gray=0.299*r 0.587*g 0.114*b; if(gray>125) gray=255; else gray=0; ptr[i*3]=(Byte)gray; ptr[i*3 1]=(Byte)gray; ptr[i*3 2]=(Byte)gray; } } Image2->Stretch=true; Image2->Height *=1; Image2->Width *=1; Image2->Picture->Assign(Bitmap1); Image2->Picture->SaveToFile("B.bmp"); delete Bitmap1; } 3.然後我去執行Project1.exe 點選Button5按鍵 4.會在Debug.exe 視窗中顯示程式 <---沒看到任何東西 我是哪個步驟弄錯了 請前輩指點!! 感恩 |
taishyang
站務副站長 ![]() ![]() ![]() ![]() ![]() ![]() 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
|
mp_0223
一般會員 ![]() ![]() 發表:16 回覆:32 積分:9 註冊:2006-10-02 發送簡訊給我 |
|
taishyang
站務副站長 ![]() ![]() ![]() ![]() ![]() ![]() 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
|
mp_0223
一般會員 ![]() ![]() 發表:16 回覆:32 積分:9 註冊:2006-10-02 發送簡訊給我 |
taishyang 大大你好
我開新專案加入 OutputDebugString("Button2Click"); ShowMessage("Btn Click"); 可以在DebugView視窗顯示,但是在舊專案加入這訊息他無法顯示 這是什麼問題呢? 還有我在新專案中是不是只要按一次他就會顯示一次 這是我按3次的結果, 這是什麼意識 是算沒錯誤? # Time Debug Print 0 0.00000000 [1048] Button2Click 0 6.28195233 [1048] Button2Click 0 9.04819479 [1048] Button2Click |
taishyang
站務副站長 ![]() ![]() ![]() ![]() ![]() ![]() 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
taishyang 大大你好 我開新專案加入 OutputDebugString("Button2Click"); ShowMessage("Btn Click"); 可以在DebugView視窗顯示,但是在舊專案加入這訊息他無法顯示 這是什麼問題呢? 所以我說你要Trace一下你專案中的程式是否會進入到按鈕的事件中? 倘若不會進入該事件中,自然在DebugView中看不到輸出的結果 還有我在新專案中是不是只要按一次他就會顯示一次 這是我按3次的結果, 這是什麼意識 是算沒錯誤? 應該反問你,你預期在DebugView中要有什麼樣的結果? 前面的數字是表示時間,可以按下[Options]->[Clock Time]來切換 #? Time???? Debug Print 0? 0.00000000? [1048] Button2Click 0? 6.28195233? [1048] Button2Click 0? 9.04819479? [1048] Button2Click |
mp_0223
一般會員 ![]() ![]() 發表:16 回覆:32 積分:9 註冊:2006-10-02 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |