我有一個應用程序可以打開很多窗口。有時,我得到wglCreateContext()返回0,GetLastError()返回0xc007001f。wglCreateContext GetLastError()0xc007001f
它只發生在Intel顯卡上。
有人看到了嗎?有人知道它是什麼?
我有一個應用程序可以打開很多窗口。有時,我得到wglCreateContext()返回0,GetLastError()返回0xc007001f。wglCreateContext GetLastError()0xc007001f
它只發生在Intel顯卡上。
有人看到了嗎?有人知道它是什麼?
我相信錯誤0xc007001f是當SetPixelFormat()
失敗。這意味着,您正嘗試使用該卡不支持的像素格式中的某些功能。如果我沒有弄錯,英特爾顯卡幾乎不支持OpenGL(只有[編輯:2.1])。
您可以將錯誤代碼分解爲其部分。 0xC使它成爲一個致命的錯誤,007產生的設施代碼是winapi。這使得最後四位Windows錯誤31:
//
// MessageId: ERROR_GEN_FAILURE
//
// MessageText:
//
// A device attached to the system is not functioning.
//
#define ERROR_GEN_FAILURE 31L
這使得它一個非常基本的設備驅動程序那樣的問題,假設你傳遞一個正確的設備上下文句柄wglCreateContext()。通常需要更新視頻驅動程序並確保安裝正確類型的OpenGL驅動程序。沒有什麼可以做的,當然,這是用戶需要解決的問題。你
也可以使用的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);
所有最新的卡的支持至少2.1 –
感謝您的指正。我很久沒有用英特爾處理圖形了,我猜... – wquist