簡體   English   中英

GLFW 無論如何都無法創建 window

[英]GLFW Can't create window no matter what

我在 Windows 7 64 位上運行 glfw 但我正在運行 32 位版本的 glfw 和 32 位版本的 mingw,我還在 vs 2019 中嘗試了 64 位版本。事情是 glfw 成功初始化但是創建 window function 失敗(我可以保證)並在互聯網上搜索,我找不到合適的解決方案。 無論如何,這是我的代碼:

#include "include/glfw3.h"

// Entry point
int main() {
    // Initialize glfw
    if (!glfwInit()) return -1;

    // Window hints
    glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
    glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);

    // Create widnow
    GLFWwindow* wind = glfwCreateWindow(800, 600, "All", NULL, NULL);
    glfwMakeContextCurrent(wind);
    if (wind == NULL) return -2; 

    // Main loop
    while (!glfwWindowShouldClose) {
        glfwPollEvents();
    }

    // Terminate glfw
    glfwDestroyWindow(wind);
    glfwTerminate();
    return 0;
}

沒有編譯錯誤。 任何幫助表示贊賞。

glfwWindowShouldClose是一個 function 來檢查 window 是否應該關閉,而不是一個全局布爾值。 所以循環條件!glfwWindowShouldClose實際上判斷這個東西是否:“ glfwWindowShouldClose ”(實際上是指 function 指針)是nullptr 由於glfwWindowShouldClose是一個具體的 function,所以在我們的例子中答案是否定的,將跳過循環,不會出現錯誤。

要修復它,請轉動這個:

    // Main loop
    while (!glfwWindowShouldClose) {
        glfwPollEvents();
    }

進入這個:

    // Main loop
    while (!glfwWindowShouldClose(wind)) {
        glfwPollEvents();
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM