0x00007FF8DC013526(ntdll.dll) 处(位于XXX.exe中) 引发的异常 osg 0xC0000005: 读取位置 0xFFFFFFFFFFFFFFFF时发生访问

环境:Qt + VS2019 + osgearth

       在加载数据界面操作成功,程序转到主界面时,弹出异常。这个问题困扰了我好长时间,终于下定决心要解决了。

       下面这篇文章给我很大的启发:​​​​​​​

.dll处位于.exe中引发的异常:0xC0000005:读取位置XXX时发生访问冲突

0x00007FF8DC013526(ntdll.dll) 处(位于XXX.exe中) 引发的异常 osg 0xC0000005: 读取位置 0xFFFFFFFFFFFFFFFF时发生访问_第1张图片

       出现上述问题,具体到本程序,原因是对象/指针被提前释放了,导致使用时出现异常。这里就是因为下图中的对象的初始化的问题。因为对象chooseFlyData是在choosedatadialog.cpp中初始化的,当choosedatadialog窗口关闭时,该对象内存也就释放了,那么再访问该对象就会导致异常。

              0x00007FF8DC013526(ntdll.dll) 处(位于XXX.exe中) 引发的异常 osg 0xC0000005: 读取位置 0xFFFFFFFFFFFFFFFF时发生访问_第2张图片

       解决方法就是在主界面cpp文件中对该对象进行初始化。

          0x00007FF8DC013526(ntdll.dll) 处(位于XXX.exe中) 引发的异常 osg 0xC0000005: 读取位置 0xFFFFFFFFFFFFFFFF时发生访问_第3张图片

        如上图所示,在QtGuiTest.cpp中QtGuiTest::QtGuiTest(QWidget* parent)函数中对该对象进行初始化,经过上述更改,问题解决!!!

你可能感兴趣的:(Qt,visual,studio,OSG,qt,VS,异常)