摘要:
一. Qt配置源码路径菜单 工具 -> 选项 -> 调试器,打开概要选项卡,点击右下角的添加Qt源码,将Qt的源码路径填入,一般路径为D:\Qt\Qt5.9.6\5.9.6\Src格式. 二.myqsl 本机命令行配置 1.解压缩,设置环境变量2.管理员执行CMD3.初始化命令记住密码:mysqld 阅读全文
摘要:
CDC类定义的是设备上下文对象的类。CDC对象提供处理显示器或打印机等设备上下文的成员函数,以及处理与窗口客户区对应的显示上下文的成员。通过CDC对象的成员函数进行所有的绘图。类对设备上下文操作提供了成员函数,处理绘图工具。安全型图形设备接口(GDI)对象收集,以及处理颜色和调色板。它还为获取和设置 阅读全文
摘要:
1. 向导页 CPropertySheet CPropertyPage 1) 自己的类继承CPropertySheet 2) 资源插入对话框,child, 无边框,生成的类继承自CPropertyPage 3) 使用AddPage将分页添加到向导对话框 4) 设置向导模式SetWizardMode 阅读全文
摘要:
1. 序列化序列化 -- 存档,把内存中的对象存储到文件反序列化 -- 读档,把对象从文件读取内存 1.1 c++ -- 对象的个数信息和对象的类型信息都要存储到文件中 1.2 MFC 序列化class myclass 1) 继承CObject:public CObject 2) 重写Seriali 阅读全文
摘要:
Linux目录和Windows目录有着很大的不同,Linux目录类似一个树,最顶层是其根目录,如下图: /bin 二进制可执行命令 /dev 设备特殊文件/etc 系统管理和配置文件/etc/rc.d 启动的配置文件和脚本/home 用户主目录的基点,比如用户user的主目录就是/home/user 阅读全文
摘要:
为了使代码的可维护性好 (换句话说就是代码不动)所以我们选择在dll中添加类工厂 因为不同的功能返回的this指针不同 所以就需要不同的类工厂 因为不同的类工厂又需要大量的switch case 来做判断所以并没有解决根本的问题 所以我们需要添加一个列表,用来记录对应的类 首先对应一个结构体 使工厂 阅读全文
摘要:
Com组件添加控件和控件消息,现在mfc中创建一个ATV程序,创建成功后项目工程添加ATV控件,选择复合控价就可以和其他控件组合使用。 使用的时候在其他编译器的工具栏选项中添加就可以了,找到对应的组件添加到工具栏,最后拖到想要的地方就可以了。 识别别人的com组件并加以利用,首先需要将别人的头文件用 阅读全文
摘要:
COM组件为了联合开发实现统一标准 统一虚表标准 1.虚表函数数量:不要有虚析构 2.虚表函数顺序:不要使用虚函数重载 3.虚表数量:不能用多重继承(两个基类都有虚函数), 不能使用虚继承 TLB com ==> 统一接口的二进制标准 Int有的语言是两个字节,有的是四个字节。像这种模糊的类型定义都 阅读全文
摘要:
1.动态链接库与静态链接库的区别。 1.1 静态链接库作为代码的一部分,在编译时被链接。 1.2 动态链接库有两种使用方式: 一种是静态加载,即在应用程序启动时被加载; 一种是动态加载,即是该动态链接库在被使用时才被应用程序加载。 2.动态链接库和COM组件的区别 2.1 动态链接库的表现形式只能是 阅读全文
摘要:
设置注册表数据和类型 LONG RegSetValueEx( HKEY hKey, 键 LPCTSTR lpValueName, 子健 DWORD Reserved, 保留值,必须强制为0 DWORD dwType, 数据类型 CONST BYTE *lpData, 数据 DWORD cbData 阅读全文
摘要:
插件设计 我们只需要在dll里面在继承这个虚基类 进行实现 便可实现com的设计 但是需要dll导出一个函数 这个函数的功能便是返回一个基类指针 子类对象的指针 这样在实 际使用中我们只需要获取一个对象指针 直接使用其功能程序便会自动查虚表进行调用子类实现的 功能 这样便实现了导出一个函数 可以使用 阅读全文
摘要:
动态数组 线性结构(线性表):每个元素只有一个唯一前驱,只有一个唯一后继 数组操作:增加,修改,删除,查询,遍历 包含头文件: #include <vector> 增加 : vctTest.push_back(5); 迭代器 : vector<int>::iterator itr = vctTest 阅读全文
摘要:
迭代器(iterator)是一种对象,它能够用来遍历标准模板库容器中的部分或全部元素,每个迭代器对象代表容器中的确定的地址。迭代器修改了常规指针的接口,所谓迭代器是一种概念上的抽象:那些行为上像迭代器的东西都可以叫做迭代器。然而迭代器有很多不同的能力,它可以把抽象容器和通用算法有机的统一起来。 迭代 阅读全文
摘要:
函数指针 函数指针是指向函数的指针变量。 因此“函数指针”本身首先应是指针变量,只不过该指针变量指向函数。这正如用指针变量可指向整型变量、字符型、数组一样,这里是指向函数。如前所述,C在编译时,每一个函数都有一个入口地址,该入口地址就是函数指针所指向的地址。有了指向函数的指针变量后,可用该指针变量调 阅读全文
摘要:
引用 计数是计算机编程语言中的一种内存管理技术,是指将资源(可以是对象、内存或磁盘空间等等)的被引用次数保存起来,当被引用次数变为零时就将其释放的过程。使用引用计数技术可以实现自动资源管理的目的。 同时引用计数还可以指使用引用计数技术回收未使用资源的垃圾回收算法。 每一个对象都有一个关联的引用计数 阅读全文
摘要:
拷贝函数 这种将对象所持有的其它资源一并拷贝的行为叫做深拷贝,我们必须显式地定义拷贝构造函数才能达到深拷贝的目的。将原有对象的所有成员变量拷贝给新对象,还会为新对象再分配一块内存,并将原有对象所持有的内存也拷贝过来。这样做的结果是,原有对象和新对象所持有的动态内存是相互独立的,更改一个对象的数据不会 阅读全文
摘要:
断言:assert 编写代码时,我们总是会做出一些假设,断言就是用于在代码中捕捉这些假设,可以将断言看作是异常处理的一种高级形式。断言表示为一些布尔表达式,程序员相信在程序中的某个特定点该表达式值为真。可以在任何时候启用和禁用断言验证,因此可以在测试时启用断言,而在部署时禁用断言。同样,程序投入运行 阅读全文
摘要:
单重继承无虚函数 查看地址 0x19fef0 查看内存 无偏移地址和跳转地址 单重继承有虚函数 有虚函数跳转地址跟入地址查看 得到b子类的虚函数 ,覆盖到了父类虚函数。 多重继承有虚函数 得到了两个地址,跳转过去得到两个地址 子类重写的虚类会覆盖父类虚表中对应的虚类 多重继承无虚函数 那个父类有虚表 阅读全文
摘要:
作用域和生命周期问题: 作用域 生命周期 存放位置 局部 从定义处开始到函数结束 函数开始到函数结束 栈空间 块 从定义处开始到块结束 函数开始到函数结束 栈空间 全局 工程的任何地方 程序模块载入到卸载 数据区 静态全局 工程的任何地方 程序模块载入到卸载 数据区 析构函数必须是虚函数 而c++默 阅读全文
摘要:
抽象类 通常在编程语句中用 abstract 修饰的类是抽象类。在C++中,含有纯虚拟函数的类称为抽象类,它不能生成对象;在java中,含有抽象方法的类称为抽象类,同样不能生成对象。 重载 隐藏 覆盖 重载 作用域相同 函数名相同,参数列表不同,返回值和调用约定不做考虑 函数重载:C++ 允许多个函 阅读全文