// Windows/ErrorMsg.h
#include "StdAfx.h"
#ifndef _UNICODE
#include "../Common/StringConvert.h"
#endif
#include "ErrorMsg.h"
#ifndef _UNICODE
extern bool g_IsNT;
#endif
namespace NWindows {
namespace NError {
static bool MyFormatMessage(DWORD errorCode, UString &message)
{
LPVOID msgBuf;
#ifndef _UNICODE
if (!g_IsNT)
{
if (::FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
NULL, errorCode, 0 , (LPTSTR) &msgBuf, 0 , NULL) == 0 )
return false ;
message = GetUnicodeString((LPCTSTR)msgBuf);
}
else
#endif
{
if (::FormatMessageW(FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
NULL, errorCode, 0 , (LPWSTR) &msgBuf, 0 , NULL) == 0 )
return false ;
message = (LPCWSTR)msgBuf;
}
::LocalFree(msgBuf);
return true ;
}
UString MyFormatMessage(DWORD errorCode)
{
UString m;
if (!MyFormatMessage(errorCode, m) || m.IsEmpty())
{
char s[16 ];
for (int i = 0 ; i < 8 ; i++)
{
unsigned t = errorCode & 0 xF;
errorCode >>= 4 ;
s[7 - i] = (char )((t < 10 ) ? ('0' + t) : ('A' + (t - 10 )));
}
s[8 ] = 0 ;
m += "Error #" ;
m += s;
}
else if (m.Len() >= 2
&& m[m.Len() - 1 ] == 0 x0A
&& m[m.Len() - 2 ] == 0 x0D)
m.DeleteFrom(m.Len() - 2 );
return m;
}
}}
Messung V0.5 in Prozent C=93 H=92 G=92
¤ Dauer der Verarbeitung: 0.11 Sekunden
(vorverarbeitet am 2026-06-05)
¤
*© Formatika GbR, Deutschland