C++ 如何使用visual studio创建OpenGL 3应用程序?

C++ 如何使用visual studio创建OpenGL 3应用程序?,c++,visual-studio,opengl,glsl,C++,Visual Studio,Opengl,Glsl,我想用VisualSutdio创建一个现代OpenGL应用程序(带有一些着色器),但在VisualSutdio中只有一个旧的标题“gl.h”。您是否知道是否有其他方法可以使用GetProcAddress()?有人知道像“glew”这样的库,但只有OpenGL 3函数吗?至于加载函数,请看 还有,别忘了 至于在VisualStudio中设置它,您可能只需要链接OpenGL库文件(windows的opengl32.dll、.so的linux等…) 此代码段可能很有用(取自第一个链接): 尽管可以在不

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

至于加载函数,请看

还有,别忘了

至于在VisualStudio中设置它,您可能只需要链接OpenGL库文件(windows的opengl32.dll、.so的linux等…)

此代码段可能很有用(取自第一个链接):


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

我认为这个问题太宽泛了,将被关闭,只是一个猜测。同时试试这个教程:没关系。我对glew qnd glfw感到困惑。我认为glew是最合适的,但我不想要像GLFW这样带有“窗口管理”的库。谢谢您的代码示例。我不知道我需要检查指针是否等于0x1或0x2或0x3或-1。。。
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;
}