Qt postEvent

时间:2015-05-01 13:27:57

标签: c++ qt access-violation

我有一个应用程序开始在各个点投入适合。它是在很久以前使用Qt库的第一个版本编写的。喜欢更新它,但这还不在卡片中。在测试应用程序的一部分时,我收到了意外的崩溃:

Unhandled exception at 0x00a220db in MyApp.exe: 
0xC0000005: Access violation reading location 0x00000000.

我可以看到的应用程序代码(Qt lib源代码不能用于调试,所以它只是一个反汇编)。

MyEvent myEvent = new MyEvent(str1, int, str2);
QApplication::postEvent(parent(), myEvent);

在受影响区域调用堆栈:

    MyApp.exe!QGList::append()  + 0x6b bytes    
    MyApp.exe!QList<QPostEvent>::append()  + 0x2f bytes 
    MyApp.exe!QApplication::postEvent()  + 0x55a bytes  
>   MyApp.exe!SomeClass::writeTestName(const char * format=0x00f6c2b8, ...)  Line 386 + 0x15 bytes

如果我检查myEvent和parent(),两者似乎都是有效的。什么是将事件添加到的postEvent方法,并且假设它是一个Qt内部,它看起来是什么,为什么它会失败 - 是否需要进行一些原始程序员可能错过的初始化?

0 个答案:

没有答案