QT点击事件内首次出现异常访问违规写入位置
first-chance exception access violation writing location inside QT clicked event
我有两个版本的相同应用程序,在使用图形UI和QT的版本中,我有一个运行时错误:
first-chance exception access violation writing location
参考
this->secondi_totali = someint;
在模型方法内部启动。我的模型类是:
class Model {
public:
friend class Controller; //dico che controller può accedere alle cose private
//friend class cronometro_qt;
/*costruttore*/
Model();
void set(int,int,int);
int get_secondi();
int get_minuti();
int get_ore();
void tick();
private:
int secondi_totali;
int secondi_trascorsi;
int secondi;
int minuti;
int ore;
};
导致异常的方法是:
void crono::Model::set(int ore, int minuti, int secondi) {
this->secondi_totali = ore * 3600 + 60 * minuti + secondi;
this->secondi_trascorsi = 0;
}
并且在堆栈中是从这个方法调用的:
void crono::Controller::set(int ore, int minuti, int secondi) {
this->modello->set(ore, minuti, secondi);
}
这个->modello显然是一个指向Controller项中Model对象的指针。
正如我之前所说,我已经完成了两个版本的程序。
在第一种情况下,控制器的set()方法由视图的一个简单方法调用,该方法是一个空类。
在第二个版本中,控制器的set()方法由调用
void crono::cronometro_qt::on_pushButton_clicked() { /* ... */ }
方法。
显然,在这两个版本中,空视图或cronometro_qt(QMainWindow的子类)都有一个指向控制器的指针,以便调用如下的set()方法:
this->controller->set(ore,minuti, secondi);
那么为什么QT版本会抛出这个异常呢?
在初始化变量之前,先输入应用程序的事件循环(a.exec())。exec()在应用程序退出之前不会返回。将初始化移动到a.exec()上方。
相关文章:
- 引发异常:读取访问冲突**dynamicArray**为0x1118235.发生
- 写入访问冲突异常
- 在类 12.exe 中0x7B37FF80 (ucrtbased.dll) 引发异常: 0xC0000005:访问冲突读
- 堆栈上的 C++ 访问冲突写入异常
- 引发异常:写访问冲突. temp 为 nullptr
- 在C++中删除双向链表的头节点后出现访问冲突异常
- 从二进制文件中读取元素时引发异常(引发异常:读取访问冲突. _Pnext 0xB414D4)
- 引发异常:读取访问冲突.**此**0x40错误
- (此函数用于计算 SMA).在 FA.exe 中0x00509159引发异常: 0xC0000005:访问冲突读取位置0
- 当我尝试访问结构类型时,我收到 std::bad_variant_access 异常
- 抛出的 Visual Studio 异常:写入访问冲突。q_deck->p_deck 0x110112。C 语言
- Visual Studio图形调试器引发读取访问冲突异常
- C++中的内存分配(引发异常:读取访问冲突)
- 为什么访问模板化变体作为返回值抛出异常
- 存在内存访问异常,但我不确定我的代码中出了什么问题
- 函数引发写入访问异常
- 使用XMVector时的内存访问异常
- 根据CIN类型插入空隙*?始终获取unsigned_char的访问异常
- 如何调试C++非托管代码中的较低级别文件访问异常/崩溃
- log4cxx访问异常,使用<<运算符和宏