0

多くのウィンドウを開くアプリケーションがあります。wglCreateContext() が 0 を返し、GetLastError() が 0xc007001f を返すことがあります。

Intel グラフィック カードでのみ発生します。

誰かがそれを見ましたか?誰かがそれが何であるか知っていますか?

4

3 に答える 3

3

エラー コードをその部分に分解できます。0xC は致命的なエラーになり、007 は winapi であるファシリティ コード 7 を生成します。これにより、最後の 4 桁が Windows エラー 31 になります。

//
// MessageId: ERROR_GEN_FAILURE
//
// MessageText:
//
// A device attached to the system is not functioning.
//
#define ERROR_GEN_FAILURE                31L

正しいデバイス コンテキスト ハンドルを wglCreateContext() に渡したとすると、これは非常に基本的なデバイス ドライバーの問題になります。通常、ビデオ ドライバーの更新が必要な種類で、適切な種類の OpenGL ドライバーがインストールされていることを確認します。もちろん、修正するためにできることは何もありません。これは、ユーザーが取り組む必要がある問題です。

于 2012-05-06T14:25:09.667 に答える
0

また、FormatMessage を使用して、エラーの説明の文字列を取得することもできます。

DWORD err = GetLastError();
char* msg;
FormatMessageA(FORMAT_MESSAGE_FROM_SYSTEM|FORMAT_MESSAGE_ALLOCATE_BUFFER, 0, err, 0, (LPCSTR)&msg, 0, 0);
MessageBoxA(0, msg, "Error", 0);
LocalFree(msg);
于 2012-05-06T19:51:09.587 に答える
0

エラー0xc007001fはSetPixelFormat()失敗したときだと思います。つまり、そのカードでサポートされていないピクセル形式の機能を使用しようとしています。私が間違っていなければ、Intel グラフィックス カードは OpenGL をほとんどサポートしていません ([編集: 2.1] のみ)。

于 2012-05-06T12:53:27.230 に答える