システム エラー コードを特定の言語に翻訳することはできますか?
にしか渡せませMAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US)
んFormatMessage
。それ以外の場合、関数呼び出しは 15100 (リソース ローダーが MUI ファイルを見つけられませんでした) で失敗します。
システム エラー メッセージはどこに保存されますか? システムのロケールとは異なるロケールでメッセージをロードできないのはなぜですか?
システム エラー コードを特定の言語に翻訳することはできますか?
にしか渡せませMAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US)
んFormatMessage
。それ以外の場合、関数呼び出しは 15100 (リソース ローダーが MUI ファイルを見つけられませんでした) で失敗します。
システム エラー メッセージはどこに保存されますか? システムのロケールとは異なるロケールでメッセージをロードできないのはなぜですか?
ではなく、言語 ID にゼロを使用しますMAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US)
。次にFormatMessage
、スレッドの言語 ID に基づいてリソースを選択するか、GetUserDefaultLangID
.
FormatMessageドキュメント:
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 );
dwLanguageId
:このパラメータに特定の LANGID を渡すと、
FormatMessage
はその LANGID のメッセージのみを返します。関数がその LANGID のメッセージを見つけられない場合、Last-Error を に設定しERROR_RESOURCE_LANG_NOT_FOUND
ます。zero を渡すと、次の順序でFormatMessage
LANGID のメッセージが検索されます。
- 中立的な言語
- スレッドのロケール値に基づくスレッド LANGID
- ユーザーのデフォルトのロケール値に基づく、ユーザーのデフォルト LANGID
- システムのデフォルト ロケール値に基づく、システムのデフォルト LANGID
- アメリカ英語