Ошибка GLFW3: «glfwGetWin32Window» не был объявлен в этой области

0

Я искал собственный API-интерфейс в документации GLFW3, чтобы получить HWND но это не в моем GLFW/glfw3.h. Есть ли #define, чтобы найти его компилятором? Я также не могу найти его вручную в самом файле с помощью text-finder, так как я могу его получить?

PS. Я не могу пометить glfw3.

Редактировать:

Код:

#define GLFW_INCLUDE_GLU

#define GLFW_EXPOSE_NATIVE_WGL
#define GLFW_EXPOSE_NATIVE_WIN32
#include <GL/GLFW/glfw3native.h>
#include <GL/GLFW/glfw3.h>

#include <ctime>
#include <cstdlib>
...

int main()
{
    //glfw setup
    ...
    //bla bla bla
    ...
    //all I want to do is to call this one
    ScreenToClient( glfwGetWin32Window(window), &point);
}
  • 0
    Пытался включить glfw3native.h ?
  • 0
    @thokra О, спасибо, но как узнать, какой "контекстный API" я использую?
Показать ещё 7 комментариев
Теги:
glfw

1 ответ

1
Лучший ответ

После того, как вы смутили свои проблемы, я попробовал это самостоятельно, и я думаю, что заказ на заказ - это ваша проблема. Минимальный пример кода, который имитирует Linux, что вы пытаетесь сделать в Windows, компилируется и работает по назначению:

#define GLFW_EXPOSE_NATIVE_X11
#define GLFW_EXPOSE_NATIVE_GLX
#include <GLFW/glfw3.h>
#include <GLFW/glfw3native.h>

int main (int argc, char ** argv)
{
  glfwInit();    
  GLFWwindow* window = glfwCreateWindow (256, 256, "GLFW", nullptr, nullptr);    
  glfwGetX11Window(window);      
  glfwTerminate();

  return 0;
}

EDIT: добавлена инсталляция glfwTerminate() для правильной очистки. Обратите внимание, что, конечно, должна проводиться соответствующая проверка ошибок, но для демонстрации минимального примера достаточно вышесказанного.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню