在没有 Windows.h 的情况下制作 OpenGL 应用程序

Posted

技术标签:

【中文标题】在没有 Windows.h 的情况下制作 OpenGL 应用程序【英文标题】:Making an OpenGL app without Windows.h 【发布时间】:2012-04-21 21:14:48 【问题描述】:

我已将链接器设置为附加依赖项 opengl32.lib;glu32.lib;sfml-main-d.lib;

当我运行它时,我会收到很多关于 APIEntry 的错误或其中一个 OpenGL 文件中的错误。 SFML 也设置得很好。

这是我的代码:

#include <iostream>
//#include <Windows.h>
#include <gl/gl.h>
#include <gl/glu.h>

using namespace std;

void main()



如果我包含 Windows.h,它可以正常工作,但我真的不想让它特定于 Windows(因为我从 C# 切换到 C++ 的唯一原因是为了跨平台,我对 Java 不太在意)

【问题讨论】:

对于未来的读者,如果您像我一样在安装 GLFW 时遇到问题,这里的链接对我有很大帮助 shawndeprey.blogspot.co.uk/2012/02/… 【参考方案1】:

如果您打算使用 OpenGL,那么您应该使用正确的OpenGL Loading Library 来获取您的函数指针。这些库的标头将包含使标头工作所需的任何特定于平台的内容,使用适当的#defines 等等。

【讨论】:

你会推荐哪一个? @AshleyDavies:好吧,我kinda wrote one of them,所以这不是一个公平的问题;) @AshleyDavies 他们真的都很好,我对 GLEW 的体验一直很好,我用的是那个,但不管哪一个有效,都有效:) 我不确定是接受这个答案还是接受 Mads'。我可能会尝试两者并接受我最终使用的任何一个。无论哪种方式,我都会赞成。谢谢你也这么快回答【参考方案2】:

如果您刚开始,您可能对设置自己的 OpenGL 上下文等较低级别的东西不感兴趣。我建议您查看http://www.glfw.org/ 的 GLFW - 这是我更喜欢的 OpenGL。它是适用于 Windows、linux 和 MAC 的开源和跨平台的。

祝你好运!

【讨论】:

我并不是刚刚开始——我已经使用 XNA 框架和 LWJGL Java OpenGL 包装器,两者都已经很长时间了。如果我使用 GLFW,会不会对性能产生重大影响? 对不起,我想我误解了目的,阅读页面看起来它只是简化了OpenGL集成或包装它或其他什么,所以我猜对性能的影响会很小?跨度> 不,一点也不。这是一个非常现代的 OpenGL 库。它今天正在编码,几天前发布了一个新版本。我使用它,我知道很多谁也这样做。我可以热情地推荐它。 我已经接受了这个答案,我认为它会更容易使用(原因很明显),特别是因为它是我的第一个图形 C++ 项目。 (我也懒得弄清楚所有特定于操作系统的编码)。 祝你好运。我还会推荐阅读 www.arcsynthesis.org/gltut/

以上是关于在没有 Windows.h 的情况下制作 OpenGL 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

Cannot open include file: 'windows.h': No such file or directory 用的是VC++6.0

如何在不包含 Windows.h 的情况下获得 DebugBreak 的声明?

如何在没有用户交互的情况下启动 Open Camera 应用程序来拍照?

在没有库的情况下制作矩阵/在列表中没有任何内容的情况下插入嵌套列表

使用 gcc/g++ 使 C++ 程序在没有窗口的情况下运行? [复制]

如何在没有窗口的情况下绘制文本