3
如果用户的计算机使用非英语(例如法语),会发生什么情况?那么文本会用法文呢?我在问这是因为这是FormatMessage的行为,除非将dwLanguageId参数指定为LANG_ENGLISH而不是LANG_NEUTRAL。COleException :: GetErrorMessage总是返回英文错误文本吗?
如果用户的计算机使用非英语(例如法语),会发生什么情况?那么文本会用法文呢?我在问这是因为这是FormatMessage的行为,除非将dwLanguageId参数指定为LANG_ENGLISH而不是LANG_NEUTRAL。COleException :: GetErrorMessage总是返回英文错误文本吗?
它取决于正在使用哪个特定的异常类。基类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(注意LANG_NEUTRAL)提供的SCODE。
是的,有问题的异常是COleException,可以由MS Word引发,我使用COM自动执行。感谢你的回答。 – sashoalm 2011-04-05 09:21:43