C++ GLFW3错误:';glfwGetWin32Window';未在此范围中声明

C++ GLFW3错误:';glfwGetWin32Window';未在此范围中声明,c++,windows,glfw,C++,Windows,Glfw,我在中寻找本机API访问以获取HWND,但它不在我的GLFW/glfw3.h文件中。是否有任何#定义,以便编译器能够找到它?使用文本查找器,我也无法在文件本身中手动找到它,因此如何获取它 另外,我不能标记glfw3 编辑: 代码: #定义GLFW(包括)GLU #定义GLFW\u EXPOSE\u NATIVE\u WGL #定义GLFW_EXPOSE_NATIVE_WIN32 #包括 #包括 #包括 #包括 ... int main() { //glfw设置 ... //呜呜呜呜 ... //

我在中寻找本机API访问以获取
HWND
,但它不在我的
GLFW/glfw3.h
文件中。是否有任何
#定义
,以便编译器能够找到它?使用
文本查找器
,我也无法在文件本身中手动找到它,因此如何获取它

另外,我不能标记
glfw3

编辑:

代码:

#定义GLFW(包括)GLU
#定义GLFW\u EXPOSE\u NATIVE\u WGL
#定义GLFW_EXPOSE_NATIVE_WIN32
#包括
#包括
#包括
#包括
...
int main()
{
//glfw设置
...
//呜呜呜呜
...
//我只想叫这个
ScreenToClient(glfwGetWin32Window(窗口),&点);
}

在被你的问题弄糊涂后,我自己尝试过,我认为包含顺序是你的问题。一个在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;
}
#定义GLFW_EXPOSE_NATIVE_X11
#定义GLFW\u EXPOSE\u NATIVE\u GLX
#包括
#包括
int main(int argc,字符**argv)
{
glfwInit();
GLFWwindow*window=glfwCreateWindow(256,256,“GLFW”,nullptr,nullptr);
GLFWGETX11窗口(窗口);
glfwTerminate();
返回0;
}

编辑:添加了
glfweterminate()
的incovation以进行适当的清理。请注意,当然应该进行适当的错误检查,但是为了演示一个最小的示例,上面的内容就足够了。

在被您的问题弄糊涂后,我自己尝试了,我认为包含顺序是您的问题。一个在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;
}
#定义GLFW_EXPOSE_NATIVE_X11
#定义GLFW\u EXPOSE\u NATIVE\u GLX
#包括
#包括
int main(int argc,字符**argv)
{
glfwInit();
GLFWwindow*window=glfwCreateWindow(256,256,“GLFW”,nullptr,nullptr);
GLFWGETX11窗口(窗口);
glfwTerminate();
返回0;
}

编辑:添加了
glfweterminate()
的incovation以进行适当的清理。请注意,当然应该进行适当的错误检查,但是为了演示一个最小的示例,上面的内容就足够了。

在被您的问题弄糊涂后,我自己尝试了,我认为包含顺序是您的问题。一个在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;
}
#定义GLFW_EXPOSE_NATIVE_X11
#定义GLFW\u EXPOSE\u NATIVE\u GLX
#包括
#包括
int main(int argc,字符**argv)
{
glfwInit();
GLFWwindow*window=glfwCreateWindow(256,256,“GLFW”,nullptr,nullptr);
GLFWGETX11窗口(窗口);
glfwTerminate();
返回0;
}

编辑:添加了
glfweterminate()
的incovation以进行适当的清理。请注意,当然应该进行适当的错误检查,但是为了演示一个最小的示例,上面的内容就足够了。

在被您的问题弄糊涂后,我自己尝试了,我认为包含顺序是您的问题。一个在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;
}
#定义GLFW_EXPOSE_NATIVE_X11
#定义GLFW\u EXPOSE\u NATIVE\u GLX
#包括
#包括
int main(int argc,字符**argv)
{
glfwInit();
GLFWwindow*window=glfwCreateWindow(256,256,“GLFW”,nullptr,nullptr);
GLFWGETX11窗口(窗口);
glfwTerminate();
返回0;
}


编辑:添加了
glfweterminate()
的incovation以进行适当的清理。请注意,当然应该进行适当的错误检查,但是为了演示一个最小的示例,上面的内容就足够了。

试图包括
glfw3native.h
?@thokra哦,谢谢你,但是如何知道我使用的是哪种“上下文API”?编辑:从头开始,你对上下文API是什么意思?@thokra我已经做了
#定义GLFW\u EXPOSE\u NATIVE\u WGL
#定义GLFW\u EXPOSE\u NATIVE\u WIN32
,但仍然说
没有指定上下文API
。我在包含头文件之前定义了它。@thokra-Uhm,我不知道这意味着什么。是编译器在抱怨。试图包含
glfw3ntive.h
?@thokra哦,谢谢你,但是如何知道我使用的是哪种“上下文API”?编辑:划掉它,你对上下文API是什么意思?@thokra我已经做了
#定义GLFW\u EXPOSE\u NATIVE\u WGL
#定义GLFW\u EXPOSE\u NATIVE\u WIN32
,但仍然说
没有指定上下文API
。我在包含头文件之前定义了它。@thokra-Uhm,我不知道这意味着什么。是编译器在抱怨。试图包含
glfw3ntive.h
?@thokra哦,谢谢你,但是如何知道我使用的是哪种“上下文API”?编辑:划掉它,你对上下文API是什么意思?@thokra我已经做了
#定义GLFW\u EXPOSE\u NATIVE\u WGL
#定义GLFW\u EXPOSE\u NATIVE\u WIN32
,但仍然说
没有指定上下文API
。我在包含头文件之前定义了它。@thokra-Uhm,我不知道这意味着什么。是编译器在抱怨。试图包含
glfw3ntive.h
?@thokra哦,谢谢你,但是如何知道我使用的是哪种“上下文API”?编辑:划掉它,你对上下文API是什么意思?@thokra我已经做了
#定义GLFW\u EXPOSE\u NATIVE\u WGL
#定义GLFW\u EXPOSE\u NATIVE\u WIN32
,但仍然说
没有指定上下文API
。我在包含头文件之前定义了它。@thokra-Uhm,我不知道这意味着什么。是编译器在抱怨。