使用OutputDebugString輸出除錯資訊

2021-09-23 22:25:20 字數 1287 閱讀 9483

概要:

在編寫控制台程式的時候我們經常會使用printf輸出除錯資訊,使我們了解程式的狀態,方便除錯,但是當編寫非控制台程式的時候這種方法就行不通了。可以使用以下方法:

(1)使用log機制

(2)用trace巨集

(3)其他

首先,使用log機制的話要先寫乙個log系統,麻煩。而關於trace巨集,查了資料後才發現原來是mfc裡的東西,那對於非mfc程式,就用不了了。後來發現了outputdebugstring這玩意兒,發現不錯。它是屬於windows api的,所以只要是包含了window.h這個標頭檔案後就可以使用了,很方便。他可以把除錯資訊輸出到編譯器的輸出視窗,如下:還可以用db**iew這樣的工具檢視,這樣就可以脫離編譯器了。下面說說如何使用outputdebugstring,函式原型是:

void winapi outputdebugstring( __in_opt lpctstr lpoutputstring)

#ifndef _debugprintf_h_    

#define _debugprintf_h_

#include#include //用於輸出資訊到編譯器輸出視窗的巨集定義

//使用win api,debug版本會執行,release版本則不會

//還可以使用debu**iew,windbg等工具檢視輸出

#ifdef _debug

#define dp0(fmt)

#define dp1(fmt,var)

#define dp2(fmt,var1,var2)

#define dp3(fmt,var1,var2,var3)

#endif

#ifndef _debug

#define dp0(fmt) ;

#define dp1(fmt, var) ;

#define dp2(fmt,var1,var2) ;

#define dp3(fmt,var1,var2,var3) ;

#endif

#endif

其中的dp就是表示bebugprint。而且這些除錯輸出只會在bebug版本中有效,在release版本中就不會有效。

這樣使用:​ ​

#include#include"debugprint.h"   

void main()

getc(stdin);

}

使用GraphEdit使用

1 註冊元件。其實乙個filter就是乙個com元件,所以使用之前需要註冊,可以有兩種方法對元件進行註冊。1.直接使用命令。命令列下輸入 regsvr32 hqtlystd.ax 編譯之後你會在工程目錄下的debug中找到hqtlystd.ax,這個就是要用的filter 即可註冊成功。2.vc6....

MySQL使用學習使用 mysql學習使用

1 mysql學習 1 安裝 ubuntu下直接安裝 apt get install mysql server 2 檢查伺服器是否啟動 sudo netstat tap grep mysql,如果啟動成功,出現以下資訊 tcp00localhost.localdomain mysql listen ...

學習使用CSDN markdown使用

建立乙個自定義列表 如何建立乙個註腳 注釋也是必不可少的 katex數學公式 新的甘特圖功能,豐富你的文章 uml 圖表 flowchart流程圖 匯出與匯入 你好!這是你第一次使用markdown編輯器所展示的歡迎頁。如果你想學習如何使用markdown編輯器,可以仔細閱讀這篇文章,了解一下mar...