metaclass: (Default)
[personal profile] metaclass
А вот хотелось бы поблагодарить неизвестного программиста обслуживаемой нами программы за то, что он вывел код ошибки API в MessageBox при ошибке работы с принтером. Без этого кода хрен бы я понял, что надо сократить название сетевого принтера, чтобы прога могла на него печатать.

Это, вообще, нетривиальная вещь. Можно просто показывать сообщение "Произошла ошибка"(плохо). Можно параллельно с этим выводить кучу инфы в лог(наверно, наиболее правильно - не пугает обычных пользователей техническими подробностями и дает возможность разобраться специалистам) или показывать ошибку целиком (не совсем хорошо, но иногда имеет смысл - особенно если сделать окно с кнопкой вроде "Информация" для подробного описания ошибки и кнопкой "Отослать разработчику отчет" :))

Date: 2013-09-10 05:09 am (UTC)
From: (Anonymous)
Это стандарт

DWord error_code = GetLastError();
FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM |
FORMAT_MESSAGE_IGNORE_INSERTS, NULL, error_code,
MAKELANGID (LANG_NEUTRAL, SUBLANG_DEFAULT),(LPTSTR) &lpMsgBuf, 0, NULL);
err_str = (LPTSTR)lpMsgBuf;
// Вывод в лог: OpenPrinter + описание ошибки error_code.
Memo1->Lines->Add(L"OpenPrinter() ERROR: " + err_str);

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 12th, 2025 04:16 am
Powered by Dreamwidth Studios