GLFW3错误:未在此范围内声明'glfwGetWin32Window'

时间:2013-10-30 10:40:12

标签: c++ windows glfw

我在GLFW3 documentation寻找原生API访问权限以获取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);
}

1 个答案:

答案 0 :(得分: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;
}

编辑:添加了glfwTerminate()的更新,以便进行适当的清理工作。请注意,当然应该进行适当的错误检查,但为了演示一个最小的例子,上面就足够了。