TRACE()宏通常是用在mfc中的,用於將調試信息輸出到vs的輸出窗口中(這是關鍵), 這在使用vs做爲開發工具的時候,是很是方便的。
然而在開發通常c++程序時,卻貌似沒法得到這樣的便利,其實只要通過幾個步驟一樣能夠實現:
一:#include<atltrace.h> //此頭文件包含ATLTRACE宏,而其實MFC作的就是#define TRACE ATLTRACE
二:使用ATLTRACE("error");
三:包含atl連接庫:atlsd.lib ( debug )或者 atls.lib
trace詳細教程:
TRACE宏對於VC下程序調試來講是頗有用的東西,有着相似printf的功能;該宏僅僅在程序的DEBUG版本中出現,當RELEASE的時候該宏就徹底消息了,從而幫助你調式也在RELEASE的時候減小代碼量。
使用很是簡單,格式以下:
TRACE("DDDDDDDDDDD");
TRACE("wewe%d",333);
一樣還存在TRACE0,TRACE1,TRACE2。。。分別對應0,1,2。。個參數
TRACE信息輸出到VC IDE環境的輸出窗口(該窗口是你編譯項目出錯提示的哪一個窗口),但僅限於你在VC中運行你的DEBUG版本的程序。
TRACE信息還可使用DEBUGVIEW來捕獲到。這種狀況下,你不能在VC的IDE環境中運行你的程序,而將BUILD好的DEBUG版本的程序單獨運行,這個時候能夠在DEBUGVIEW的窗口看到DEBUGVIE格式的輸出了。
VC中TRACE的用法有如下四種:
1:
TRACE ,就是不帶動態參數輸出字符串, 相似C的printf("輸出字符串");
2:
TRACE 中的字符串能夠帶一個參數輸出 , 相似C的printf("...%d",變量);
3:
TRACE 能夠帶兩個參數輸出,相似C的printf("...%d...%f",變量1,變量2);
4:
TRACE 能夠帶三個參數輸出,相似C的printf("...%d,%d,%d",變量1,變量2,變量3);
TRACE 宏有點象咱們之前在C語言中用的Printf函數,使程序在運行過程當中輸出一些調試信息,使咱們能瞭解程序的一些狀態。但有一點不一樣的是:
TRACE 宏只有在調試狀態下才有所輸出,而之前用的Printf 函數在任何狀況下都有輸出。和Printf 函數同樣,TRACE函數能夠接受多個參數如:
int x = 1;
int y = 16;
float z = 32.0;
TRACE( "This is a TRACE statement/n" );
TRACE( "The value of x is %d/n", x );
TRACE( "x = %d and y = %d/n", x, y );
TRACE( "x = %d and y = %x and z = %f/n", x, y, z );
要注意的是TRACE宏只對Debug 版本的工程產生做用,在Release 版本的工程中,TRACE宏將被忽略。c++