<menu id="w8yyk"><menu id="w8yyk"></menu></menu>
  • <dd id="w8yyk"><nav id="w8yyk"></nav></dd>
    <menu id="w8yyk"></menu>
    <menu id="w8yyk"><code id="w8yyk"></code></menu>
    <menu id="w8yyk"></menu>
    <xmp id="w8yyk">
    <xmp id="w8yyk"><nav id="w8yyk"></nav>
  • 網站首頁 > 物聯資訊 > 技術分享

    VC++非MFC項目中如何使用TRACE宏

    2016-09-28 00:00:00 廣州睿豐德信息科技有限公司 閱讀
    睿豐德科技 專注RFID識別技術和條碼識別技術與管理軟件的集成項目。質量追溯系統、MES系統、金蝶與條碼系統對接、用友與條碼系統對接

    記得原來嘗試學MFC的時候覺得有一個TRACE可以在Debug時向VS的調試輸出窗口輸出字串符,用來調試時跟蹤變量很方便。

    然則如果不是MFC項目或者ATL的項目的話是不能使用這個宏的。這時有一個沒有什么額外消耗的辦法能夠做到向調試輸出窗口輸出。

    在項目中額外包含windows.h這個頭文件,再使用OutputDebugString()這個函數就能夠起到與TRACE()宏相同的效果。在進行一點包裝就能和c中的printf一樣接受不定項參數。

    下面程序做為范例。

     

    #include <iostream>

    #include <windows.h>

    using namespace std;


    bool _trace(TCHAR *format, ...)

    {

    TCHAR buffer[1000];


    va_list argptr;

    va_start(argptr, format);

    wvsprintf(buffer, format, argptr);

    va_end(argptr);


    OutputDebugString(buffer);


    return true;

    }


    int main() {

    int test = 5;

    _trace("hi output:%d", test);

    int a;

    cin >> a;

    }

    在vs2005中編譯運行后在Output窗口輸出"hi output : 5"

    這么nb的做法當然不是我自己發現的...在StackOverflow這里發帖問到的,那邊還有一個方便使用的將trace包裝的頭文件和cpp文件。

    話說這個StackOverflow是個蠻新穎的程序員社區,這邊提問被解答的效率和質量都相當高

    站點也做的很不錯,web2.0風味十足,還有badges這種先進的要素

    -------------------------------------

    另外記得要將項目屬性中General->Character Set設置為Not Set 或者Multi Byte才行,用Unicode的話無法通過編譯。

    再附個包trace.rar有相應cpp/h

    RFID管理系統集成商 RFID中間件 條碼系統中間層 物聯網軟件集成
    最近免费观看高清韩国日本大全