调试器中的完整错误消息:
“下级停止,因为它触发了异常。在线程0中因异常0xfbdeba而停止,代码:0xc0000005:0x 0处发生读取访问冲突,标志= 0x 0。"
我可以编译我的代码没有任何错误,但当我运行它或调试,它崩溃,
当我使用一个QMessagebox来显示一条消息时,如果我注解掉这个消息,程序会正常运行。我试图在初始化QApplication后将QMessagebox放在main.cpp中,同样的错误也存在。
我不明白这个错误的原因是什么???
请指导我。我使用QT 4.8.1和msvc 2010编译器。
我想做的是:我尝试更改名为Open-sankore(源代码here...)的开源应用程序,并尝试检查用户是否完成了注册表?如果未向用户显示消息框。
我在UBApplication::exec(..)的第一行添加了一个代码部分。
int UBApplication::exec(const QString& pFileToImport)
{
if(CheckLock() == -1)
{
QMessageBox myBox;
myBox.setText("Please Complete The Registration form to continue!");
myBox.setWindowTitle("Warning!");
myBox.exec();
}
发生错误后,调试程序转到UBBoardController. h和以下函数
UBBoardView* controlView()
{
**return mControlView;**
}
4条答案
按热度按时间nfg76nw01#
我发现这个错误大多发生在尝试使用未初始化的变量时。
xlpyo6sf2#
我找到了一个答案:这个错误通常发生在一个指针没有初始化的时候。2你应该检查UR代码来找到它。3例如:
只要将指针设置为“空”即可。
jc3wubiy3#
当在析构函数中删除未使用的对象时,会发生此错误。
s71maibg4#
遇到相同的错误,原因是“智能指针被销毁两次”。
溶液:只删除行
m_edit->deleteLater();