0

我一直在寻找GLFW3 文档中的本机 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);
}
4

1 回答 1

3

在对您的问题感到困惑之后,我自己尝试了一下,我认为包含顺序是您的问题。在 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():添加了正确清理的 incovation 。请注意,当然应该进行适当的错误检查,但为了演示一个最小的示例,以上内容就足够了。

于 2013-10-30T11:43:37.240 回答