COleException :: GetErrorMessage是否总是以英语返回错误文本?

时间:2011-04-04 09:03:03

标签: c++ mfc cexception

如果用户的计算机具有非英语,例如法语,会发生什么?那文本会用法语吗?我问这个是因为这是FormatMessage的行为,除非将dwLanguageId参数指定为LANG_ENGLISH而不是LANG_NEUTRAL。

1 个答案:

答案 0 :(得分:0)

取决于使用哪个特定的异常类。基类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)

针对AfxThrowOleException中提供的SCODE(注意LANG_NEUTRAL)。