Windows API – получение результатов FormatMessage() в std::stringC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Windows API – получение результатов FormatMessage() в std::string

Сообщение Anonymous »

Я новичок в Windows API, и хотя я понял, как получить описания кодов системных сообщений, мне хотелось бы знать, есть ли лучший и более элегантный способ сделать это. Или в образовательных целях, если вообще есть другой способ.

Код: Выделить всё

DWORD WINAPI FormatMessage(
_In_      DWORD dwFlags,
_In_opt_  LPCVOID lpSource,
_In_      DWORD dwMessageId,
_In_      DWORD dwLanguageId,
_Out_     LPTSTR lpBuffer,
_In_      DWORD nSize,
_In_opt_  va_list *Arguments
);
ОБНОВЛЕННЫЙ КОД ПОСЛЕ КОММЕНТАРИЯ:

Код: Выделить всё

std::string bmd2File::getErrorCodeDescription(long errorCode) const throw (bmd2Exception)
{
#ifdef _WIN32

char MessageFromSystem[1024];
bool messageReceived = FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM,
0,
errorCode,
1033,                          // US English
MessageFromSystem,
1024,
0);
std::ostringstream ostr;

if (!messageReceived)
ostr 

Подробнее здесь: [url]https://stackoverflow.com/questions/20726471/windows-api-fetching-results-of-formatmessage-into-a-stdstring[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»