我想把代码初始化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方法中,当我将上下文设置到窗口时,方法返回,我尝试绘制它,它只显示一个白色的屏幕。