最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語(yǔ)言 OutputDebugString與格式化輸出函數(shù)OutputDebugPrintf案例詳解

 更新時(shí)間:2021年08月20日 14:37:32   作者:EmbededCoder  
這篇文章主要介紹了C語(yǔ)言 OutputDebugString與格式化輸出函數(shù)OutputDebugPrintf案例詳解,本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下

OutputDebugString屬于windows API的,所以只要是包含了window.h這個(gè)頭文件后就可以使用了。可以把調(diào)試信息輸出到編譯器的輸出窗口,還可以用DbgView(本機(jī)或TCP遠(yuǎn)程)這樣的工具查看,這樣就可以脫離編譯器了。  

OutputDebugString 默認(rèn)只能輸入一個(gè)參數(shù),不能像printf那樣格式化輸出,下面改造成類似printf函數(shù)的輸出方式。

#include <windows.h>
#include <stdio.h>
//#include <stdlib.h>
#include <stdarg.h>
 
#define IS_USE_OUTPUT_DEBUG_PRINT   1
 
#if  IS_USE_OUTPUT_DEBUG_PRINT 
 
#define  OUTPUT_DEBUG_PRINTF(str)  OutputDebugPrintf(str)
void OutputDebugPrintf(const char * strOutputString, ...)
{
#define PUT_PUT_DEBUG_BUF_LEN   1024
	char strBuffer[PUT_PUT_DEBUG_BUF_LEN] = { 0 };
	va_list vlArgs;
	va_start(vlArgs, strOutputString);
	_vsnprintf_s (strBuffer, sizeof(strBuffer) - 1, strOutputString, vlArgs);  //_vsnprintf_s  _vsnprintf
	//vsprintf(strBuffer,strOutputString,vlArgs);
	va_end(vlArgs);
	OutputDebugStringA(strBuffer);  //OutputDebugString    // OutputDebugStringW
 
}
#else 
#define  OUTPUT_DEBUG_PRINTF(str) 
#endif

 使用實(shí)例:

OutputDebugPrintf("DEBUG_INFO | %d %s",600019,"hello");

然后在 DbgView 設(shè)置一個(gè)過濾:DEBUG_INFO,抓取固定的輸出。

Unicode模式下,OutputDebugString要求一個(gè) wchar_t 而不是char,而sprintf則需要char參數(shù),那我們是不是一定要通過字符轉(zhuǎn)換解決問題呢?

答案就是 OutputDebugStringA()

原因:Unicode模式,OutputDebugString會(huì)變成OutputDebugStringW。如果想用ANSI版本的,直接寫OutputDebugStringA,或者設(shè)置工程屬性,使用MBCS的編碼集。

處理“error C2220: warning treated as error - no object file generated”錯(cuò)誤"

產(chǎn)生原因?yàn)椋河行㏄roject編譯選項(xiàng)中,Treat Warnings As Errors(把警告看作錯(cuò)誤來(lái)處理)選項(xiàng)開啟了。

只要把此選項(xiàng)關(guān)閉,就可以正常編譯了。

在Solution中,選擇工程,右鍵菜單中選擇“Properties”。彈出的屬性框中,將Configuration選擇“All Configurations”,選擇“C/C++/General/”,右側(cè)Treat Warnings As Errors值從原來(lái)的“Yes(/WX)”改為“No(/WX-)”。

點(diǎn)擊確定,再重新編譯,即可。

怎樣處理“error C2220: warning trea...”錯(cuò)誤

到此這篇關(guān)于C語(yǔ)言 OutputDebugString與格式化輸出函數(shù)OutputDebugPrintf案例詳解的文章就介紹到這了,更多相關(guān)C語(yǔ)言 OutputDebugString與格式化輸出函數(shù)OutputDebugPrintf內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C語(yǔ)言 structural body結(jié)構(gòu)體詳解用法

    C語(yǔ)言 structural body結(jié)構(gòu)體詳解用法

    C 數(shù)組允許定義可存儲(chǔ)相同類型數(shù)據(jù)項(xiàng)的變量,結(jié)構(gòu)是 C 編程中另一種用戶自定義的可用的數(shù)據(jù)類型,它允許您存儲(chǔ)不同類型的數(shù)據(jù)項(xiàng),結(jié)構(gòu)用于表示一條記錄,假設(shè)您想要跟蹤圖書館中書本的動(dòng)態(tài),您可能需要跟蹤每本書的下列屬性
    2021-10-10
  • C++異常捕捉與處理的深入講解

    C++異常捕捉與處理的深入講解

    這篇文章主要給你大家介紹了關(guān)于C++異常捕捉與處理的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • c語(yǔ)言swap(a,b)值交換的4種實(shí)現(xiàn)方法

    c語(yǔ)言swap(a,b)值交換的4種實(shí)現(xiàn)方法

    c語(yǔ)言swap(a,b)值交換的4種實(shí)現(xiàn)方法,這么好的東西,盡管簡(jiǎn)單,但值得發(fā)表,以此共享。
    2013-02-02
  • c++實(shí)現(xiàn)md5加密的代碼

    c++實(shí)現(xiàn)md5加密的代碼

    這篇文章主要介紹了c++實(shí)現(xiàn)md5加密的實(shí)例代碼,代碼簡(jiǎn)單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06
  • C++中的對(duì)象數(shù)組詳細(xì)解析

    C++中的對(duì)象數(shù)組詳細(xì)解析

    在建立數(shù)組時(shí),同樣要調(diào)用構(gòu)造函數(shù)。如果有50個(gè)元素,就需要調(diào)用50次構(gòu)造函數(shù)。在需要的時(shí)候,可以在定義數(shù)組時(shí)提供實(shí)參以實(shí)現(xiàn)初始化
    2013-10-10
  • QT中QByteArray與char、int、float之間的互相轉(zhuǎn)化

    QT中QByteArray與char、int、float之間的互相轉(zhuǎn)化

    本文主要介紹了QT中QByteArray與char、int、float之間的互相轉(zhuǎn)化,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • VC獲取當(dāng)前路徑及程序名的實(shí)現(xiàn)代碼

    VC獲取當(dāng)前路徑及程序名的實(shí)現(xiàn)代碼

    VC上或取當(dāng)前路徑有多種方法,最常用的是使用 GetCurrentDirectory和GetModuleFileName函數(shù),個(gè)中都有諸多注意事項(xiàng),特別總結(jié)一下
    2016-11-11
  • C++中智能指針unique_ptr的實(shí)現(xiàn)詳解

    C++中智能指針unique_ptr的實(shí)現(xiàn)詳解

    智能指針本質(zhì)上并不神秘,其實(shí)就是?RAII?資源管理功能的自然展現(xiàn)而已,這篇文章主要為大家詳細(xì)介紹了如何實(shí)現(xiàn)?C++中智能指針的?unique_ptr,需要的可以了解下
    2024-01-01
  • 詳解Visual Studio 2019(VS2019) 基本操作

    詳解Visual Studio 2019(VS2019) 基本操作

    這篇文章主要介紹了詳解Visual Studio 2019(VS2019) 基本操作,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • C++結(jié)構(gòu)體struct和類class區(qū)別詳解

    C++結(jié)構(gòu)體struct和類class區(qū)別詳解

    struct和class有什么區(qū)別?最本質(zhì)的一個(gè)區(qū)別就是默認(rèn)的訪問控制:默認(rèn)的繼承訪問權(quán)限,struct是public的,class是private的。
    2017-11-11

最新評(píng)論

怀宁县| 青川县| 漯河市| 崇阳县| 建水县| 哈巴河县| 东丽区| 栾川县| 志丹县| 延庆县| 清河县| 昌黎县| 涿州市| 芷江| 五大连池市| 文成县| 石家庄市| 九江县| 万载县| 乳山市| 呼玛县| 镶黄旗| 秦安县| 永仁县| 涟水县| 长宁县| 互助| 施甸县| 黄冈市| 环江| 尉犁县| 临湘市| 额济纳旗| 云浮市| 中卫市| 福清市| 两当县| 舒兰市| 克什克腾旗| 临颍县| 武陟县|