VS + QT定位崩溃信息 具体设置如下:1)链接器 - 调试 - 生成调试信息 【生成调试信息 (/DEBUG)】2)C/C++ - 常规 - 调试信息格式 【程序数据库 (/Zi)】3)C/C++ - 优化 - 优化 【禁用】4)复杂点的涉及到操作系统的内容,还需要加入EHa。C/C++ - 代码生成 - 启用C++异常 【是,但有 SEH 异常 (/EHa)】...
MiniDump - 调试问题的基础 前言这个minidump对于在windows平台上调试程序问题是十分重要的,所以有必要提一下。之前我有一个博客说的很详细了,但是因为同事借我的账号乱下载文件,所以直接给注销了。换了一家公司以后,发现他们的程序完全没有Dump检测机制,有点不放心,然后大致搜索,回顾一番了,决定还是再记录一遍。代码在这里插入代码片...
QT 对象树的概念 在Qt里面,半存在着垃圾回收机制,不过不是系统自己执行的,是需要使用者自己去绑定的。从QObject继承下来的控件,在初始化的时候都可以为其指定一个QObject *parent的指针,这个指针的作用就是指定它是那个控件下面的子控件。这个时候,Qt就会把这个控件添加到parent的children()列表中;当parent执行析构操作的时候,会自动逐个析构children()列表中的控件,达到一个不是很自动化的垃圾回收的机制。比如伪代码parent = QWidgetQPushButton(par
关于模板声明与定义必须放在一起的一种猜测 看看我的试验结果:#include "tem.h"int main(){ int a = 6; func();}当然,这里的 func();应该是带一个参数的,这里没写,主要是想看是否查看了tem.h的声明。可以看到,虽然是模板函数,但是还是在变异的时候查看了声明。接下来更正函数的调用。#include "tem.h"int main(){ int a = 6; func(a);}编译结果:此时没有编译错误,那么链接一下试试。看到此时
桶排序 VS 位排序 桶排序:数组里面可以有重复的数字或者字符,但是会占用大量空间。位排序:数组里面不能有重复的数字或者字符,占用空间小。下面分别用代码说明:桶排序#include <iostream>void StackSort(int* array, int size){ int max_num = 0; for(int i = 0; i < size; ++i) { if(array[i] > max_num) {
对Template的认识 我们来看一个示例:#include <iostream>#include <vector>#include <algorithm>template<typename T>bool greator(T first, T second){ return second > first;}void main(){ std::v...
对new的认识 唉,基础不牢固就是要付出很多的努力才能弥补(T_T)new在底层做的工作:1)分配空间(operator new)2)强制转换为对象3)调用构造函数初始化4)返回指针尤其第一步,operator new,我们重载new操作符的时候是不是也是这样写的,当然这里也是一些教程没有写清楚,甚至大学老师都没有说清楚。其实我们重载的只是这个函数而已,并不是对整个操作符进行重载。先看看new操作符...
因一个delete引发的思考 请看这样一段代码:class Test{public: void speak() { delete this; m_value = 100; std::cout << "Who speak..." << std::endl; } ~Test() { std::co...
准备面试过程中遇到比较有意思的一个题 对于单例类,大家应该不陌生吧,但是要用好,还是要信息一些,否则出现内存泄漏都弄不明白为什么。题目是这样的:手写单例模式刚入IT行业的人多半会以为人家考察的是你对设计模式的理解,其实别人还有另一层深意。如果只是这样写:class Singleton{public:static Singleton* getInstance(){ if(instance == NULL) { i...
面试小记 就在昨天面试了4399教育版块 C++开发工程师的岗位,还是做一下总结,希望对后面的人有所帮助。博主毕业以后,在上一家公司工作了2年半,虽说每天忙的要死但是基本的东西一个都没学会,可能找工作和已经参加工作确实有所不同吧!博主在准备的时候,以为只需要准备Qt、C++以及算法相关的东西就行,那成想还有些其他的东西,浪费了得之不易的一次机会。建议在面试前不要玩手机来影响到自己,定好的是11.20面试...
Qt 之 程序崩溃分析 前言所谓程序界的三大问题:崩溃,死锁,内存泄漏,要是解决的好就好,解决的不好就有可能面临走人的窘境,本篇来聊一下Qt下崩溃的解决思路。开始Win下定位崩溃无非就是那么两个文件,一个是dump文件(linux下就是core文件),另一个就是pdb文件(linux下就是elf信息)。首先是要准备好程序的pdb文件,记住,pdb必须和exe程序匹配,也就是说,你当前的exe程序只能使用你当前的p...
Qt 之 QSS技巧 这里默认大家已经会html 和 CSS的一些基本的东西,如果不会的话,华哥半天的时间找个网站学习一下就差不多入门了。我们知道html里面可以设置id 和 class属性来分别区分同一种类型的控件,Qt虽说支持QSS,但是它毕竟是C++开发的,怎么去区分呢?这里就用到了Qt的元对象,每一个QObject的子类都可以自定义属性,然后我们通过属性选择器就可以实现这个功能了。#ifndef WIDGE...
Qt 之 QtCreator使用技巧 前言虽说语言重要,编辑器的使用也很重要,否则leader让你调试一个BUG,半天搞不定,不也很尴尬嘛!技巧先说代码编辑上的技巧1) ctrl + i 快速对其2)ctrl + b 快速编译3)ctrl + r 快速运行4)f2 跟踪光标下的符号,若是变量,可跟踪到变量声明的地方;若是函数体或函数声明,可在两者之间切换5)f4 在同名的头文件和源程序文件之间切换6)ctrl + ...
QT5 之 RadioButton组 前言虽然之前用过QradioButton,但是那时只有一组选项用到了QradioButton,所以设不设置组都没关系,但是以后肯定会遇到多组值需要用QradioButton的,提前学习下。开始这里主要用到了一个类,QButtonGroup,它还可以用到其他的地方,这里暂时只讲解QradioButton,其余的类似。(注意,QButtonGroup没有可视化属性,不是QWidget的子类)#...
QT5之 i18n 前言i18n 在QT自带的示例程序里面有,名称就是i18n,但是具体的i18n的过程可能还是不太清楚,这里记录一下。(本来想从事linux的C开发的,奈何不给机会,只能搞QT开发咯,哭晕)步骤这里给出一点小的建议,如果你是打算修改示例程序的代码,那么建议你将工程文件拷贝出来,不然一旦你改出问题了,下次你就要重新从官网去下载这些东西了,巨麻烦。展开这个项目之后,结构是这样的,这里面最重要的...
Win下模拟键盘输入的三种办法 最近闲着没事,就随意浏览博客,突然发现了一种模拟键盘输入的办法(之前一直想破脑袋的都没有想到的),然后借此机会说明一下。具体实现方法1)借用粘贴板这是比较容易想到的,也最受程序员鄙视的一种办法,如果你实在想不到好的办法,用这种方法救救急还是可以的,具体代码可以参照MSDN。(当然,此法有一个好处,不用处理英文和中文的区别,直接无脑复制过去即可)2)利用SendInput来模拟这种就是模拟...
算法(续)用栈实现队列的功能 这里最好采用链表的形式,每次取出最尾部的元素即可#include <iostream>using namespace std;struct NODE{ int num; NODE* next;}* PNODE;int main(){ NODE* head = new NODE; head->next = NULL; for...