0

私はこれとほぼ同様の問題を抱えていました。 FormatMessage がエラー コード 317 で失敗する

違いは、これが原因であると言われていますが"FORMAT_MESSAGE_FROM_SYSTEM"、削除すると再び発生します。

EventLogWindows Server 2003から読み込もうとしていますが、FormatMessage関数を使用しようとすると317エラーが発生します。

興味深いことに、同じコードが Windows Server 2008 でも機能しますFormatMessage

私のコード:

   FormatMessage(FORMAT_MESSAGE_FROM_HMODULE | 
        FORMAT_MESSAGE_FROM_SYSTEM | 
        FORMAT_MESSAGE_ALLOCATE_BUFFER,
        g_hResources, // handles DLL containing message table 
        MessageId,
        0, // Default language
        (LPWSTR) &pMessage,
        0,
        (va_list*)pArgs )

こんばんは..

4

1 に答える 1

2

エラー 317 は、「%2 のメッセージ ファイルにメッセージ番号 0x%1 のメッセージ テキストが見つかりません」です。. これはMessageId、システムが認識しているエラー番号ではないことを意味します。

と を組み合わせFORMAT_MESSAGE_FROM_HMODULEていますがFORMAT_MESSAGE_FROM_SYSTEM、意味がありません。どこからメッセージを取得しますか? g_hResourcesシステム エラー メッセージ テーブルから取得しますか? コメントから、 から取得したいようです。g_hResourcesその場合は、 を削除する必要がありますFORMAT_MESSAGE_FROM_SYSTEM。それでもエラー 317 が発生する場合は、渡したメッセージ番号が に存在しないことを意味しますg_hResources

于 2011-12-18T15:26:20.323 に答える