新人求助OpenGL编译时读取位置访问冲突
主函数入口程序代码:
int main() { DisplayManager mDisplayMgr; mDisplayMgr.createDisplay(); while (!mDisplayMgr.isRequestColsed()) { mDisplayMgr.updateDisplay(); } return 0; }
运行到while判断的时候调用这个成员函数
程序代码:
bool DisplayManager::isRequestColsed() { return mDisplay.isRequestClosed(); }
再调用
程序代码:
bool Display::isRequestClosed() { if (glfwWindowShouldClose(mWindow)) { this->destory(); return true; } return false; }
运行到if判断 执行glfwWindowShouldColse(mWinodw)出现问题 如下是错误详情
0x007D0CC2 处(位于 Project1.exe 中)引发的异常: 0xC0000005: 读取位置 0x00000018 时发生访问冲突。
以下是类Display的申明
程序代码:
class Display { private: DisplayMode mDisplayMode; const char* title; struct GLFWwindow* mWindow; public: Display() :title(""), mWindow(nullptr){} void create(ContexAttri attr); void update(); void destory(); bool isRequestClosed(); void setDisplayMode(DisplayMode mode); void setTitle(const char* _title); static void frameBufferSizeCallback(GLFWwindow*, int, int); private: void processEvent(); };
DisplayManager的声明
程序代码:
class DisplayManager { private: Display mDisplay; public: DisplayManager(){} void createDisplay(); void updateDisplay(); void closeDisplay(); bool isRequestColsed(); };
求助 真的是不知道哪里能出问题