glfwCreateWindow(..) возвращает null в Visual Studio

Я использую GLFW и хочу открывать только пустые окна.

Я скачал GLFW для Windows 32. Создал пустой консольный проект и написал такой код:

#include "main.h"
#pragma comment (lib, "glfw3dll")
#pragma comment (lib, "OpenGL32")

#define GLFW_DLL

#include <glfw3.h>
#include <chrono>
#include <iostream>

using namespace std::chrono;


GLFWwindow* window;

bool running = true;


bool initialise(){
return true;
}

void update(double deltaTime){

}

void render(){

}



int main(int argc, char **argv) {

if (!glfwInit)
    return -1;

window = (glfwCreateWindow(800, 600, "Hello World", nullptr, nullptr));

if (window == nullptr){
    glfwTerminate();
    return -1;
}

glfwMakeContextCurrent(window);

if (!initialise()){
    glfwTerminate();
    return -1;
}

auto currentTimeStamp = system_clock::now();
auto prevTimeStamp = system_clock::now();

while (running)
{
    currentTimeStamp = system_clock::now();

    auto elapsed = duration_cast<milliseconds>(currentTimeStamp - prevTimeStamp);
    auto seconds = double(elapsed.count()) / 1000.0;

    update(seconds);

    render();

    glfwPollEvents();

    prevTimeStamp = currentTimeStamp;

}

glfwTerminate();

return -1;
}

И я думаю, что добавил библиотеку и заголовок правильно. Но каждый раз, когда программа завершается с -1 после функции glfwCreateWindow(..), потому что эти функции возвращают ноль.

Кто-нибудь может мне помочь?


person Thomas Kay    schedule 20.09.2013    source источник
comment
Не могли бы вы правильно сделать отступ в своем коде, пожалуйста.   -  person jodag    schedule 21.09.2013
comment
Я думаю, пока ошибка, он просто смотрит, инициирован ли glfw (glfwInit), а затем пытается создать окно с помощью функции glfwCreateWindows (...), но это не работает...   -  person Thomas Kay    schedule 21.09.2013


Ответы (1)


if (!glfwInit)
    return -1;

Я не уверен, почему glfwInit было бы NULL, если только во время загрузки DLL не произошло что-то действительно ужасное.

Вместо этого попробуйте позвонить glfwInit():

if( !glfwInit() )
    return -1;
person genpfault    schedule 20.09.2013
comment
Хорошо, я понял. но я начал весь проект с самого начала. Одна проблема заключалась в том, что у меня был драйвер для моей Radeon HD 4200 из программы обновления Windows, когда я установил проприетарный драйвер, он заработал. Спасибо чувак! - person Thomas Kay; 21.09.2013