如何使用 Visual Studio 创建 OpenGL 3 应用程序?

Posted

技术标签:

【中文标题】如何使用 Visual Studio 创建 OpenGL 3 应用程序?【英文标题】:How to create a OpenGL 3 application with visual studio? 【发布时间】:2016-12-06 09:20:53 【问题描述】:

我想创建一个带有视觉 sutdio 的现代 OpenGL 应用程序(带有一些着色器),但在视觉上只有一个旧标题“gl.h”。您是否还有其他方法可以使用 GetProcAdress() ?有人知道像“glew”这样的库,但只有 OpenGL 3 函数吗?

【问题讨论】:

我觉得这个问题太笼统了,会被关闭,只是一个猜测。同时试试这个教程:learnopengl.com/#!Getting-started/OpenGL 没关系。我对 glew qnd glfw 感到困惑。我认为 glew 是最合适的,但我不想要像 glfw 这样的带有“窗口管理”的库 【参考方案1】:

关于加载函数,请看this page。

另外,不要忘记context creation。

至于在 Visual Studio 中进行设置,您可能只需要链接 OpenGL lib 文件(windows 为 opengl32.dll,linux 为 .so 等)

这个 sn-p 可能有用(取自第一个链接):

void *GetAnyGLFuncAddress(const char *name)

    void *p = (void *)wglGetProcAddress(name);
    if(p == 0 ||
        (p == (void*)0x1) || (p == (void*)0x2) || (p == (void*)0x3) ||
        (p == (void*)-1) )
    
        HMODULE module = LoadLibraryA("opengl32.dll");
        p = (void *)GetProcAddress(module, name);
    

    return p;

尽管可以在没有 GLFW 或 SDL 等包装器的情况下使用 OpenGL,但强烈建议使用预先存在的包装器,例如其中之一。大多数情况下,因为实现是特定于平台的,这些包装器处理(没有它们,您将需要针对不同平台的不同算法)。它们还为 GL 常量(GL_TRUE、GL_FALSE、GL_TEXTURE_2D 等)提供了方便的简写。

【讨论】:

感谢您的代码示例。我不知道我需要检查指针是否等于 0x1 或 0x2 或 0x3 或 -1...

以上是关于如何使用 Visual Studio 创建 OpenGL 3 应用程序?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Visual Studio 2008 创建静默安装程序包

Visual Studio 2010 64 位库构建

如何使用 Visual Studio 创建 OpenGL 3 应用程序?

如何使用 Visual Studio Code 创建和链接另一个网页?

如何在 Visual Studio 2010 中使用 Crystal Reports 创建报表

使用 Visual Studio 创建可执行文件/DLL 文件时如何删除私人信息?