FormatMessage( 二 )

如果FORMAT_MESSAGE_ALLOCATE_BUFFER标誌没有被指定,这个参数必须指定为输出缓冲区的大小,如果指定值为0,这个参数指定为分配给输出缓冲区的最小数 。Arguments保存格式化信息中的插入值的一个数组 。返回值如果函式调用成功,返回输出缓冲区的大小,除最后一个空字元 。如果失败则返回0 。举例【FormatMessage】// 系统错误信息提示 。void TestErrorInfo(void){    //进行出错 。    if (!CreateDirectory(_T("c:\\"),0))    {        TCHAR szBuf[128];        LPVOID lpMsgBuf;        DWORD dw = GetLastError();        FormatMessage (            FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,            NULL,            dw,            MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),            (LPTSTR) &lpMsgBuf,            0, NULL );        wsprintf(szBuf,            _T("%s 出错信息 (出错码=%d): %s"),            _T("CreateDirectory"), dw, lpMsgBuf);        LocalFree(lpMsgBuf);        //输出提示 。        OutputDebugString(szBuf);    }}调用后输出下面的提示信息:CreateDirectory 出错信息 (出错码=5): 拒绝访问 。需求客户端需要Windows XP、Windows 2000 Professional、Windows NT Workstation、Windows Me、Windows 98或Windows 95 。伺服器需要Windows Server 2003、Windows 2000 Server或Windows NT Server 。头档案在Winbase.h中声明,包含于Windows.h 。库档案Kernel32.lib 。DLL需要Kernel32.dll 。Unicode以FormatMessageW (Unicode)和FormatMessageA (ANSI)的形式实现 。