#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语言中 变长参数列表,或许对上面函数有所帮助
评论