QT ui崩溃

 

 

 

 

 崩溃的位置是在main.cpp return a.exec();

 

通过代码回溯和按钮点击位置查看到一个头文件 中的 char str [100]  在lineedit->settext显示崩溃;但是经过反复看,char str[]里边的内容并没有数组越界。

 先修改了一下 char str [100]  ---改成---char str [200]  ;发现不崩溃了;char str [100]的内容来自一个dll库内部获取的名字。

后经测试发现 编译 DLL时候,其中的头文件中的“char str数组”  的大小是[200], 但是qt demo测试APP里边的头文件(dll库的头文件)的char str数组的大小是[100];qt demo未及时更新头文件,只更新了dll;

一定要保证编译DLL的时候的头文件和测试dll时候demo的头文件是一样的

 

多人开发的时候一定要注意及时替换头文件;

头文件不一致:譬如私有成员变量不一致(其他都一样),恰巧你调用的接口用了这个成员变量,可是你却没有及时在demo中更换头文件,就会到时乱崩溃,位置毫无踪迹可寻。

 

还会引发一些不相干的结构体崩溃:

Run-Time Check Failure #2 – Stack around the variable '某某某' was corrupted.

另外:注意qt 开发是区分debug依赖库和release依赖库的(qt系统库),不要使用debug的qt库去编译release的qtEXE,否则会出现乱崩溃现象。

posted on 2020-07-13 19:45  邗影  阅读(567)  评论(0编辑  收藏  举报

导航