Всегда ли COleException :: GetErrorMessage возвращает текст ошибки на английском языке? - PullRequest
3 голосов
/ 04 апреля 2011

Что бы произошло, если бы на компьютере пользователя был не английский, например французский? Будет ли текст на французском? Я спрашиваю об этом, потому что это поведение FormatMessage , если для параметра LANG_ENGLISH вместо LANG_NEUTRAL не указан параметр dwLanguageId.

1 Ответ

0 голосов
/ 04 апреля 2011

Зависит от того, какой конкретный класс исключений используется. В базовом классе CException нет ничего, что устанавливало бы или форматировало сообщение об ошибке. Однако некоторые из CException -приобретенных классов вызывают FormatMessage при возврате своих сообщений об ошибках. Например, COleException::GetErrorMessage звонки

FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER|FORMAT_MESSAGE_FROM_SYSTEM,
              NULL, m_sc,
              MAKELANGID(LANG_NEUTRAL, SUBLANG_SYS_DEFAULT),
              (LPTSTR) &lpBuffer, 0, NULL)

против SCODE в AfxThrowOleException (примечание LANG_NEUTRAL).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...