2013-07-26 52 views
2

我在Windows 7(64位)使用32位MSVC 2010GLFW3 - 控制檯錯誤:「WGL:未能找到合適的像素格式」

據我所知,我已經正確連接我所有的庫一起: 添加在以下到選項:

1. VC++目錄 - >包含目錄加入 :C:\ GLFW-3.0.1.bin.WIN32 \包括

2. VC++目錄 - >圖書館目錄 加入:C:\ GLFW-3.0.1.bin.WIN32 \ lib中-msvc100

3.鏈接器 - >輸入 - >附加依賴 glfw3.lib opengl32.lib USER32.LIB

我還將庫文件夾中的.dll文件放入我的system32文件夾中以進行默認執行。

當我編譯測試應用程序:

#include <GLFW/glfw3.h> 
#include <stdlib.h> 
#include <stdio.h> 
static void error_callback(int error, const char* description) 
{ 
    fputs(description, stderr); 
} 
static void key_callback(GLFWwindow* window, int key, int scancode, int action, int mods) 
{ 
    if (key == GLFW_KEY_ESCAPE && action == GLFW_PRESS) 
     glfwSetWindowShouldClose(window, GL_TRUE); 
} 
int main(void) 
{ 
    GLFWwindow* window; 
    glfwSetErrorCallback(error_callback); 
    if (!glfwInit()) 
     exit(EXIT_FAILURE); 
    window = glfwCreateWindow(640, 480, "Simple example", NULL, NULL); 
    if (!window) 
    { 
     glfwTerminate(); 
     exit(EXIT_FAILURE); 
    } 
    glfwMakeContextCurrent(window); 
    glfwSetKeyCallback(window, key_callback); 
    while (!glfwWindowShouldClose(window)) 
    { 
     float ratio; 
     int width, height; 
     glfwGetFramebufferSize(window, &width, &height); 
     ratio = width/(float) height; 
     glViewport(0, 0, width, height); 
     glClear(GL_COLOR_BUFFER_BIT); 
     glMatrixMode(GL_PROJECTION); 
     glLoadIdentity(); 
     glOrtho(-ratio, ratio, -1.f, 1.f, 1.f, -1.f); 
     glMatrixMode(GL_MODELVIEW); 
     glLoadIdentity(); 
     glRotatef((float) glfwGetTime() * 50.f, 0.f, 0.f, 1.f); 
     glBegin(GL_TRIANGLES); 
     glColor3f(1.f, 0.f, 0.f); 
     glVertex3f(-0.6f, -0.4f, 0.f); 
     glColor3f(0.f, 1.f, 0.f); 
     glVertex3f(0.6f, -0.4f, 0.f); 
     glColor3f(0.f, 0.f, 1.f); 
     glVertex3f(0.f, 0.6f, 0.f); 
     glEnd(); 
     glfwSwapBuffers(window); 
     glfwPollEvents(); 
    } 
    glfwDestroyWindow(window); 
    glfwTerminate(); 
    exit(EXIT_SUCCESS); 
} 

在執行時,一個消息在控制檯指出出現:「WGL:無法找到合適的像素格式」。

當我調試應用程序時,消息在執行 行後顯示「window = glfwCreateWindow(640,480,」Simple example「,NULL,NULL);」

我不確定如何解決這個問題,有什麼想法?

編輯:設法包含儘可能多的細節,我能想到的......遺憾的更新後期

編輯編輯:需要製造商的驅動程序,而不是Windows自動安裝Windows的人(儘管Windows仍然明顯安裝的dirver對於正確的「x1350和x1500系列」驅動程序

+0

你好,歡迎來到Stack Overflow。你需要提供更多的細節,才能回答你的問題。而通過「更多細節」,我的意思是「任何細節」。因爲沒有。 –

+0

你是不是想要做一些愚蠢的事情,比如在虛擬機或遠程桌面上運行它?或忘了安裝您的視頻驅動程序? – genpfault

+1

此錯誤與您的視頻卡/驅動程序中的opengl支持有關。所以除非它是一些帶有芯片組的板載gpu,從恐龍時代開始,genpfaults提出的問題可能會導致你的問題 – Bisder

回答

2

微軟提供的圖形驅動程序並不少見,它們既不支持OpenGL,也不支持非常過時或有限的支持,他們首先感興趣的是擁有桌面今天也意味着讓Direct3D啓動並運行,但肯定不是OpenGL。