システム エラー コードを特定の言語に翻訳することはできますか?
にしか渡せませ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 を渡すと、次の順序でFormatMessageLANGID のメッセージが検索されます。
- 中立的な言語
- スレッドのロケール値に基づくスレッド LANGID
- ユーザーのデフォルトのロケール値に基づく、ユーザーのデフォルト LANGID
- システムのデフォルト ロケール値に基づく、システムのデフォルト LANGID
- アメリカ英語