2

32 ビット MSVC 2010 を使用して Windows 7 (64 ビット) を使用しています。

私の知る限り、すべてのライブラリを適切にリンクしました: オプションに以下を追加しました:

1. VC++ ディレクトリ -> インクルード ディレクトリ が追加されました: C:\glfw-3.0.1.bin.WIN32\include

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);」という行を実行した後にメッセージが表示されます。

この問題を解決する方法がわかりません。何かアイデアはありますか?

編集:私が考えることができる限り多くの詳細を含めようとしました...更新が遅くなって申し訳ありません

EDIT EDIT:必要なメーカーのドライバーであり、Windowsの自動Windowsがインストールしたものではありません(Windowsはまだ正しい「x1350およびx1500シリーズ」ドライバーのドライバーをインストールしているように見えますが.

4

1 に答える 1

2

Microsoft が提供するグラフィックス ドライバーが OpenGL をサポートしていないか、非常に古いか限定的なサポートしかないことは珍しくありません。彼らは何よりも、デスクトップを正しく動作させることに関心を持っています。これは今日、Direct3D を起動して実行することも意味しますが、OpenGL はもちろんそうではありません。

于 2013-10-28T21:38:14.040 に答える