英語のみの値を取得するためにフォーマットメッセージを使用しようとしています
MSDNは次のように指定しています
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パラメーターの場合、
要求されたメッセージの言語識別子。dwFlagsにFORMAT_MESSAGE_FROM_STRINGが含まれている場合、このパラメーターは無視されます。
このパラメーターで特定のLANGIDを渡すと、FormatMessageはそのLANGIDのメッセージのみを返します。関数がそのLANGIDのメッセージを見つけることができない場合、Last-ErrorをERROR_RESOURCE_LANG_NOT_FOUNDに設定します。ゼロを渡すと、FormatMessageは次の順序でLANGIDのメッセージを検索します。
- 言語中立
- スレッドのロケール値に基づくスレッドLANGID
- ユーザーのデフォルトのロケール値に基づくユーザーのデフォルトのLANGID
- システムのデフォルトのロケール値に基づくシステムのデフォルトのLANGID
- アメリカ英語
FormatMessageは、先行するLANGIDのいずれのメッセージも検出しない場合、存在する言語メッセージ文字列を返します。それが失敗した場合は、ERROR_RESOURCE_LANG_NOT_FOUNDを返します。
これは、パス値が5の場合、英語でメッセージを返すことを意味しますか?
これを明確にしていただけますか?