2013-09-20 1 views
1

Я использую GLFW и хочу только открыть пустое окно.glfwCreateWindow (..) возвращает null в Visual Studio

Я скачал 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 (..), потому что эта функция возвращает null.

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

+1

Не могли бы вы правильно отступы код пожалуйста. – jodag

+0

Я думаю, что до ошибки он просто смотрит, инициирован ли glfw (glfwInit), а затем пытается создать окно с помощью функции glfwCreateWindows (...), но это не работает ... –

ответ

3
if (!glfwInit) 
    return -1; 

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

Попробуйте вызоваglfwInit() вместо:

if(!glfwInit()) 
    return -1; 
+1

ok, i have понял. но я начал весь проект с самого начала. Одна из проблем заключалась в том, что у меня был драйвер для моего Radeon HD 4200 из окна обновления, когда я установил проприетарный драйвер, он работал. Спасибо чувак! –

 Смежные вопросы

  • Нет связанных вопросов^_^