#include<windows.h>#include<tchar.h>#include<stdio.h> //格式化消息框int CDECL MessageBoxPrintf(TCHAR* szCaption,TCHAR* szFormat,...){ TCHAR szBuffer[1024]; va_list pArgList; //或许只有va_list这种类型才能被设置为szFormat va_start(pArgList,szFormat);//将pArgList设置为指向szFormat _vsntprintf(szBuffer,sizeof(szBuffer)/sizeof(TCHAR),szFormat,pArgList); //_vsntprintf 是sprintf加强版,多了个size_t count指明缓冲区的大小,保证不会有内存越界的错误。 va_end(pArgList); return MessageBox(NULL,szBuffer,szCaption,0);} int WINAPI WinMain(HINSTANCE hlnstance,HINSTANCE hPrevInstance,PSTR szCmdLine,int iCmdShow){ int cxScreen,cyScreen; cxScreen=GetSystemMetrics(SM_CXSCREEN); //得到视频显示器的宽度 cyScreen=GetSystemMetrics(SM_CYSCREEN); //得到视频显示器的高度 MessageBoxPrintf(TEXT("ScmSize"),TEXT("The screen is % i pixels wide by % i pixels high."), cxScreen,cyScreen); return 0;} //在Windows程序中不能使用printf。 // 另外一篇文章 c语言中 变长参数列表,或许对上面函数有所帮助

评论