一般狀況下,動態庫很難調試,尤爲是要打印輸出到控制檯上,不少新的開發平臺好比VS2010或QT卻是能夠打印動態庫內容到控制檯,但我發現VC6編寫的動態仍是不能夠。使用這個函數,能夠將VC6編寫的動態庫調試信息打印到控制檯,即便在Release模式下,也能建立一個控制檯窗口用於信息輸出。ios
#include <stdarg.h> #include <iostream> int dllPrintf(char *fmt, ...) { //不定參數格式化 va_list argptr; va_start(argptr, fmt); char buffer[512] = {0}; int cnt = vsprintf(buffer, fmt, argptr); va_end(argptr); //建立控制檯窗口 static HANDLE gHConsole = INVALID_HANDLE_VALUE; if (INVALID_HANDLE_VALUE == gHConsole) { AllocConsole(); gHConsole = GetStdHandle(STD_OUTPUT_HANDLE); } //打印到指定的控制檯窗口 DWORD dw; WriteConsole(gHConsole, buffer, strlen(buffer), &dw, NULL); return(cnt); }