熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

Win32 DLL的一個調試心得

2022-06-13   來源: .NET編程 

  在MFC工程(包括單文檔多文檔基於對話框MFC DLL等)調試程序時可以使用trace宏來輸出相關變量的值在Win 工程(包括Win Application和Win DLL)只能使用OutputDebugString函數來輸出相關變量值但是我覺得OutputDebugString比起trace宏有很大的不足OutputDebugString不能像trace宏一樣格式化輸出只能輸出字符串而且糟糕的是Win 工程不能使用MFC的CString類構造格式化輸出字符串為此我上網搜了一些資料找到了在Win格式化輸出的方法具體就是構造一個類似C語言的printf函數DebugString具體代碼如下

  #ifdef _DEBUG

  void WINAPI DebugString(LPCSTR format )

  {

  va_list arglist;

  char buffer[];

  va_start (arglistformat);

  vsprintf(buffer format arglist);

  va_end (arglist);

  strcat(buffer \t);

  OutputDebugString (buffer); }

  #endif

  代碼說明

  char buffer[] 為格式化輸出字符串的長度應該根據你要輸出的變量值合理設置strcat(buffer \t); // 調用該函數後在output窗口中輸出字符串後跳到下一個tab位置可以換為換行符

  測試代碼

  #include <windowsh>

  #include <stdioh>

  #ifdef _DEBUG

  void WINAPI DebugString(LPCSTR format )

  {

  va_list arglist; char buffer[];

  va_start (arglistformat);

  vsprintf(buffer format arglist);

  va_end (arglist);

  strcat(buffer \n);

  OutputDebugString (buffer);

  }

  #endif

  int main(int argc char* argv[]) {

  int i;

  for (i=; i<; i++)

  DebugString(Hello: %d i); return ;

  }


From:http://tw.wingwit.com/Article/program/net/201311/13758.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.