glewInit() Fehlgeschlagen, OpenGL-App

Ich versuche zu bauen, ein OpenGL-App mit glew/glfw. Ich habe heruntergeladen die Binärdateien befinden sich im root von "my folder"), Hinzugefügt werden die Pfade zu den include-und lib-Verzeichnisse und sagte zu meinem Projekt zu verlangen glew32.lib, GLFW.lib und opengl32.lib.

Habe ich sogar kopiert glew32.lib im root-Verzeichnis, da mein Projekt nicht sehen konnten.

Muss ich halten, alle Abhängigkeiten im Projekt-Verzeichnis, da werde ich verteilen. Ich bin an einem Verlust.

Wenn ich jetzt aus meinem Programm, es schlägt fehl, glewInit()

Dies ist meine Implementierung so weit:

#include "Common.h"

GameEngine::GameEngine()
{
    InitWithSize(1024, 768);
    InitInput();
}

void GameEngine::InitWithSize(int _width, int _height)
{
    try {
        //Initialise GLFW
        if( !glfwInit() )
            throw std::exception("Failed to initialize GLFW\n");

        //glfwOpenWindowHint(GLFW_FSAA_SAMPLES, 4);
        glfwOpenWindowHint(GLFW_OPENGL_VERSION_MAJOR, 3); 
        glfwOpenWindowHint(GLFW_OPENGL_VERSION_MINOR, 3);
        glfwOpenWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);

        //Open a window and create its OpenGL context
        if( !glfwOpenWindow( _width, _height, 0,0,0,0, 32,0, GLFW_WINDOW ) ) 
            throw std::exception("Failed to initialize GLFW\n");


        glfwSetWindowTitle( "Tutorial 01" );

        //Initialize GLEW
        if (glewInit() != GLEW_OK)
            throw std::exception("Failed to initialize GLEW\n");


    } catch ( std::system_error const& err) {
        fprintf(stdout, "System Error: %s", err.what());
        glfwTerminate(); //Free glfw if it has been allocated
        //Try Again
        this->InitWithSize(_width, _height);
    } catch( std::exception const& err) {
        fprintf(stdout, "Exception Found: %s", err.what());
    } catch ( ... ) {
        fprintf(stdout,"Unknown Exception Occurred\n");
    }
}

void GameEngine::InitInput()
{
        //Ensure we can capture the escape key being pressed below
        glfwEnable( GLFW_STICKY_KEYS );
}

void GameEngine::StartGameLoop()
{
    do{
            //Draw nothing, see you in tutorial 2 !

            //Swap buffers
            glfwSwapBuffers();

        } //Check if the ESC key was pressed or the window was closed
        while( glfwGetKey( GLFW_KEY_ESC ) != GLFW_PRESS &&
            glfwGetWindowParam( GLFW_OPENED ) );
}


void GameEngine::InitTestData()
{
    //An array of 3 vectors which represents 3 vertices
    static const GLfloat g_vertex_buffer_data[] = {
        -1.0f, -1.0f, 0.0f,
        1.0f, -1.0f, 0.0f,
        0.0f,  1.0f, 0.0f,
    };

}

Mit meinem Common-Header:

#ifndef _COMMON_H
#define _COMMON_H

//OpenGL Libraries
#define GLEW_STATIC
//#pragma comment(lib, "glew32.lib")
#include <GL\glew.h>
#include <GL\glfw.h>

//Core Libraries
#include <Windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <map>
#include <string>
#include <fstream>

//C++ 11 Libraries
#include <memory>
#include <exception>
#include <thread>
#include <chrono>

//Manager Classes
#include "ThreadManager.h"
#include "GameEngine.h"
#include "ShaderManager.h"

//Lesser Classes
#include "Shader.h"

#endif
Vielleicht setzen Sie Ihren code? Ich sehe keine echten Fehler im log, nur eine Meldung, dass das Programm beendet. Sie können ignorieren Sie alle PDB-Symbole Linien.
glewInit() eigentlich einen Fehlercode zurückgibt, die Sie verwenden können, mit glewGetErrorString. Siehe glew.sourceforge.net/basic.html

InformationsquelleAutor Josh Elias | 2012-12-09

Schreibe einen Kommentar