[✔️]qt应用nvoglv32.dll崩溃

简介: [✔️]qt应用nvoglv32.dll崩溃

问题现场情况


我新建了一个window窗口,在这个窗口我操作了主窗口的QOpenGLWidget,QOpenGLWidget也能够正常响应,绘制结果也符合预期。


当我尝试拖动qt应用的窗口时,就触发了崩溃:


image.png


从倾斜的画面中,很明显Qt底层也是使用OpenGL绘制界面的,这个倾斜的问题就是字节对齐的问题表现


image.png


0x120E9F12 (nvoglv32.dll)处(位于 editor.exe 中)引发的异常: 0xC0000005: 读取位置 0x23D36000 时发生访问冲突。


nvoglv的全称是nvdia opengl version的缩写,这个库是操作系统动态库,很明显这个错误来自OpenGL,是不正当的OpenGL操作导致的,我重新检查了相关代码,初步怀疑可能是在Qt的GUI线程里面,操作OpenGL导致的崩溃,于是尝试使用qt的信号和槽,来尝试进行修复:


class UI1{
    public:
    onStart(string v){
        emit this->done("反馈给UI2");
    };
signals:
    void done(string v);
}
class UI2{
signals:
    void start(string v);
    void test(){
        UI1* ui1 = new UI1();
        QObject::connect(ui1, &UI1::done,this,[=](string v){
        });
        QObject::connect(this, &UI2::start,ui1,&UI1:onStart)
        emit this->start("触发UI1.onStart");
    }
}


发现还是崩溃,因为这个崩溃问题之前也遇到过,于是回忆了下之前的的代码,发现可能跟OpenGL Context有关系:


qOpenglWidget.makeCurrent();


最终还真的就这样子修复了这个崩溃问题,至于makeCurrent详细查看官方文档。


问题2:编译链接异常,无法关闭vs


控制台会报错,提示:


LINK : error : GetThreadContext failed: 31
LINK : fatal error LNK1000: 在 00007FF7D5ED7CB1 出现未知错误;请参考文档中的技术支持选项


此时无法关闭vs,取消编译也无效,只能从任务管理器中结束任务。


这个问题在开发中遇到了2次,导致这个问题的原因暂时也没有找到。

目录
相关文章
|
3月前
|
Web App开发 编解码 安全
视频会议技术 入门探究:WebRTC、Qt与FFmpeg在视频编解码中的应用
视频会议技术 入门探究:WebRTC、Qt与FFmpeg在视频编解码中的应用
430 4
|
3月前
|
开发框架 Linux API
Qt:构建高效且用户友好的跨平台应用
Qt:构建高效且用户友好的跨平台应用
|
3月前
|
开发框架 网络协议 数据库
Qt:构建跨平台应用的强大框架
Qt:构建跨平台应用的强大框架
|
3月前
|
安全 前端开发 C++
C++视角下的Qt按钮:从基础应用到高级定制(二)
C++视角下的Qt按钮:从基础应用到高级定制
78 2
|
3月前
|
XML JSON 算法
C++视角下的Qt按钮:从基础应用到高级定制(一)
C++视角下的Qt按钮:从基础应用到高级定制
298 2
|
3月前
|
算法 数据可视化 程序员
【Qt UI】调色板QPalette类在Qt编程中的应用
【Qt UI】调色板QPalette类在Qt编程中的应用
84 0
|
3月前
|
存储 算法 API
【Qt 基本类】QDateTime类在C++中的应用与深度解析
【Qt 基本类】QDateTime类在C++中的应用与深度解析
122 0
|
3月前
|
算法 Unix 调度
【Qt 线程】深入探究QThread线程优先级:原理、应用与最佳实践
【Qt 线程】深入探究QThread线程优先级:原理、应用与最佳实践
273 0
|
3月前
|
编解码 并行计算 Java
QT界面中实现视频帧显示的多种方法及应用(二)
QT界面中实现视频帧显示的多种方法及应用
538 0
|
3月前
|
Web App开发 编解码 安全
【WebRTC 入门教程】全面解析WebRTC:从底层原理到Qt和FFmpeg的集成应用
【WebRTC 入门教程】全面解析WebRTC:从底层原理到Qt和FFmpeg的集成应用
1542 1