使用DLL初始化GLFW会引发错误

时间:2014-12-11 18:58:11

标签: c++ opengl dll glfw

我想把代码初始化GLFW(和一个窗口)放到一个dll中,但似乎有些事我做错了。

    GLFWwindow* window;
glfwWindowHint(GLFW_RESIZABLE, GL_FALSE);
window = glfwCreateWindow(width, height, "Hello World", NULL, NULL);
if (!window)
{
    glfwTerminate();
    std::cout << "Window Initialization failed";
    return nullptr;
}
glfwMakeContextCurrent(window);
return window;

我已将上述代码放在名为&#39; test&#39;的方法中。在与我的main方法相同的.cpp文件中,它工作正常。但是,当我将代码移动到DLL然后调用(完全相同)方法时,它返回nullptr,输出&#34; Windows Initi ..失败&#34;。

GLFWwindow* window = test(800, 600);
GLFWwindow* window = gldll::Initialization::initializeGLFW(800, 600);

&#39;测试&#39;工作得很好,我的gldll :: Initialization类的方法不起作用。

我怀疑这个问题在于我将dll与我的项目链接的方式,但是来自同一个dll的其他方法工作正常。

编辑: 我现在添加了glfwInit();到上面的方法。在我的main方法中,当我将上下文设置到窗口时,方法返回,我尝试绘制它,它只显示一个白色的屏幕。

0 个答案:

没有答案