C++ 如何在枚举类中包装第三个库?

C++ 如何在枚举类中包装第三个库?,c++,opengl,dll,enums,C++,Opengl,Dll,Enums,我正在编写一个纹理类来包装OpenGL的细节,并将其作为dll。 OpenGL中有很多常量定义,如下所示 /* TextureMinFilter */ /* GL_NEAREST */ /* GL_LINEAR */ #define GL_NEAREST_MIPMAP_NEAREST 0x2700 #define GL_LINEAR_MIPMAP_NEAREST 0x2701 #define GL_NEAREST_MIPMAP_LINEAR

我正在编写一个纹理类来包装OpenGL的细节,并将其作为dll。
OpenGL中有很多常量定义,如下所示

/* TextureMinFilter */
/*      GL_NEAREST */
/*      GL_LINEAR */
#define GL_NEAREST_MIPMAP_NEAREST         0x2700
#define GL_LINEAR_MIPMAP_NEAREST          0x2701
#define GL_NEAREST_MIPMAP_LINEAR          0x2702
#define GL_LINEAR_MIPMAP_LINEAR           0x2703
    enum class Filter
    {
        Nearest = GL_NEAREST,
        Linear = GL_LINEAR,
        NearestMipmapNearest = GL_NEAREST_MIPMAP_NEAREST,
        LinearMipmapNearest = GL_LINEAR_MIPMAP_NEAREST,
        NearestMipmapLinear = GL_NEAREST_MIPMAP_LINEAR,
        LinearMipmapLinear = GL_LINEAR_MIPMAP_LINEAR
    };
我想用枚举类来包装它们,如下所示

/* TextureMinFilter */
/*      GL_NEAREST */
/*      GL_LINEAR */
#define GL_NEAREST_MIPMAP_NEAREST         0x2700
#define GL_LINEAR_MIPMAP_NEAREST          0x2701
#define GL_NEAREST_MIPMAP_LINEAR          0x2702
#define GL_LINEAR_MIPMAP_LINEAR           0x2703
    enum class Filter
    {
        Nearest = GL_NEAREST,
        Linear = GL_LINEAR,
        NearestMipmapNearest = GL_NEAREST_MIPMAP_NEAREST,
        LinearMipmapNearest = GL_LINEAR_MIPMAP_NEAREST,
        NearestMipmapLinear = GL_NEAREST_MIPMAP_LINEAR,
        LinearMipmapLinear = GL_LINEAR_MIPMAP_LINEAR
    };
有一个问题,如果我把enum类放在头文件中,我需要在使用dll时包含第三个OpenGL头文件。
所以我在头文件中使用enum类前向声明,并将定义放在cpp文件中

// Texture.h
enum class Filter;
但在这种情况下,当我在cpp文件外使用enum类时,编译器找不到enum类的成员

// Texture.h
enum class Filter;


如何包装它们?

extern const int filterNet?(可能是在“静态”类中)。使用第三方代码总是一团糟,如果可能的话,只需使用库而不是与之斗争,否则,您可以通过将库的一部分复制到项目中来提取库,或者执行@Jarod42建议的一些变通方法。