在C/C++控制台编程中,我们经常通过printf来随时查看变量的情况,用于调试程序,但是C/C++在windows编程中,没有办法是用printf,那该怎么办?有过javascript程序调试经验的程序员肯定经常使用alert来弹出变量用于调试,所以我们可以借鉴弹出窗口,利用windows API中的MessageBox来弹出变量信息,帮助我们调试。下面是我根据这个思维写的测试程序,共初学者参考。
#include <windows.h>
#include <stdio.h>
#include <tchar.h>
#include <stdarg.h> //C语言中可变参数需要包含的头文件
/******************************************************************************
@functiion: MessageBoxPrintf
@args: szCaption--弹窗标题;szFormat--格式化字符串;...--可变参数列表
******************************************************************************/
int CDECL MessageBoxPrintf(TCHAR * szCaption, const TCHAR * szFormat,...)
{
TCHAR szBuffer[1024];
va_list pArgs;
va_start(pArgs, szFormat); //把pArgs指向szFormat的第一个参数
_vstprintf_s(szBuffer,
sizeof(szBuffer)/sizeof(TCHAR),
szFormat,
pArgs);
va_end(pArgs);
return MessageBox(NULL,szBuffer, szCaption, MB_OK | MB_ICONINFORMATION );
}
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine,int iCmdShow)
{
INT16 a = 12, b=65, c= 255;
//下面是测试弹窗效果
MessageBoxPrintf(TEXT("标题"), TEXT("Hello, %d, %c, %x"), a, b, c);
return 0;
}