自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

洋葱汪的博客

学习笔记记录

原创 PE文件结构

参考《加密与解密》《Windows PE权威指南》目录1、PE文件的结构1、什么是可执行文件?2、PE文件的特征3、PE文件的整体结构4、PE文件到内存的映射5、DOS部分6、PE文件头(PE Header)7、块表8、RVA与FOA的转换2、输出表和输入表1、输出表(导出表)2、输入表(导入表)3、重定位表4、资源1、PE文件的结构...

2019-08-09 18:42:48 476

原创 传值与传址,详解this指针

虽然一直知道this指针,但一直没有底层分析过,本节就分析一下C++中的this指针,彻底理解它的本质!!!1、C语言中的结构体传参C语言中结构体传参时建议使用指针,可以少了大量的内存复制分析下面的C代码//test.c#include <stdio.h>struct Student{ int a; int b; int c;};int plus(...

2019-07-05 13:25:47 161

原创 从实模式到保护模式

上节Boot成功加载loader到内存并且将控制权交给他,突破了512字节的限制,loader程序没有体积上的限制这节就实战编写loader实现从实模式到保护模式再返回实模式目录1、从实模式到保护模式1、从计算机的历史谈起2、CPU历史的里程碑 - 80863、80286的登场4、初识保护模式5、80386的登场(计算机新时期的标志)4、编程实验2、深入保护...

2019-04-13 16:25:29 1316 3

原创 突破512字节的限制

上节详细分析了FAT12文件系统。这节具体讲解:主引导程序如何①从存储介质中加载程序到内存②将控制权交由新加载的程序执行目录1、突破512字节限制1、将文件系统的根目录区加载到内存1、字符串打印2、软盘读取2、在根目录区找到目标文件1、内存比较2、根目录的查找3、通过FAT表将文件的数据全部加载到内存1、内存拷贝2、Fat表项的读取4、小结...

2019-03-28 20:27:47 439

原创 王爽《汇编语言》笔记(详细)

一、基础知识1、指令机器指令:CPU能直接识别并执行的二进制编码(指令)汇编指令:是机器指令便于记忆的书写格式。汇编指令是机器指令的助记符,同机器指令一一对应。指令:指令通常由操作码和地址码(操作数)两部分组成指令集:每种CPU都有自己的汇编指令集。汇编语言发展至今,有以下3类指令组成。汇编指令:机器码的助记符,有对应的机器码。伪指令:没有对应的机器码,由编译器执行,计算机并不执...

2019-03-24 19:53:32 19685 15

原创 详解FAT12文件系统

目录1、详解FAT12文件系统2、实验1、向虚拟软盘写入文件2、读取软盘文件系统信息3、在根目录中查找目标文件4、读取目标文件到内存3、小结1、FAT12文件系统文件系统 -存储介质上组织文件数据的方法(数据组织的方式)文件系统示例 -FAT12是DOS时代的早期文件系统 -FAT12结构非常简单,一直沿用于软盘...

2019-03-16 11:04:23 3712

原创 自己动手写操作系统 - Hello DTOS

本系列笔记参考整理于狄泰未来 - 操作系统专题、于渊 《自己动手写操作系统》(《一个操作系统的实现》)基于x86架构从零开始编写操作系统内核,旨在通过实践的方式掌握操作系统原理目录1、BIOS2、主引导程序1、主引导程序2、编写一个主引导程序3、主引导程序的扩展3、调试环境的搭建(Bochs)4、小结1、BIOS什么是操作系统? - Windo...

2019-03-12 17:52:18 556 3

原创 缔造程序兼容的合约

目录1、理解ABI、EABI、API1、什么是ABI(Application Binary Interface)?2、什么是EABI(Embedded Application Binary Interface)?3、ABI和API有什么不同?4、ABI规范的示例2、函数调用约定分析1、概述2、函数调用约定的细节3、实验分析4、返回值与调用约定分类3、小结...

2019-03-03 13:52:42 242

原创 理解程序的一般结构

1、程序的段程序由不同的段构成(代码段,数据段) - 程序的静态特征就是指令和数据 - 程序的动态特征就是执行指令处理数据程序文件的一般布局 程序文件未运行时代码段(.text) - 源代码中的可执行语句编译后进入...

2019-03-01 19:39:08 167

原创 调试利器GDB

目录1、初探GDB2、使用GDB 进行断点调试3、函数调用栈的查看4、调试中的小技巧5、小结1、初探GDB什么是GDB? - GNU项目中的调试器(gnu debuger) - 能够跟踪程序的执行,也能够恢复程序崩溃前的状态为什么需要GDB? - 软件不是一次性开发完成的(是软件就有bug,是程序就有问题) -...

2019-02-28 21:16:42 185

原创 揭开链接器的面纱

目录1、链接器的作用2、程序启动过程的函数调用3、链接脚本4、实验5、小结1、链接器的作用问题        源文件被编译后生成目标文件,这些目标文件如何生成最终的可执行程序?            链接器的主要作用是把各个模块之间相互引用的部分处理好,使得各个模块之间能够正确的衔接。目标文件的秘密    - 各个段没有具体的起始地址,只有段大小信息...

2019-02-26 13:07:58 201

原创 软件开发利器 - binutils工具集

目录1、Binutils工具集2、区分VMA与LMA1、Binutils工具集GNU为GCC编译器提供了配套的辅助工具集(Binutils))           http://www.gnu.org/software/binutils/addr2line     - 将指定地址转换为对应的文件名和行号     - 常用于分析和定位内存访问错误的问题//f...

2019-02-23 18:13:25 161

原创 嵌入式C语言编译器

目录1、GCC与gcc有什么不同?2、什么是交叉编译?3、编译、链接过程简介4、如何理解"多语言混合开发"5、gcc关键编译选项1、GCC与gcc有什么不同?GCC(GNU Compiler Collection)     - GNU编译器集合,包含众多语言的编译器(C,C++,Java,D,Objective-C,etc.)gcc     - 特指GCC中...

2019-02-23 14:16:50 437

原创 多线程与界面组件的通信

1、有趣的问题是否可以在子线程中创建界面组件?void TestThread::run(){ /* It is ERROR to create GUI elements in SUB THREAD */ QWidget w; w.show(); exec();}Widget::Widget(QWidget *parent) : ...

2018-08-24 18:35:58 247

原创 信号与槽的连接方式

1、信号与槽的连接方式深入信号与槽的连接方式 - Qt:: DirectConnection (立即调用) - Qt::QueuedConnection (异步调用) - Qt::BlockingQueuedConnection (同步调用) - Qt: :AutoConnection (默认连接) -...

2018-08-24 18:35:04 2708 1

原创 多线程中的信号与槽

1、值得思考的问题线程对象是否可以发射信号(signal) ?是否可以定义槽函数(slot) ?2、多线程中的信号与槽QThread类拥有发射信号和定义槽函数的能力 -关键信号: ★ void started() 线程开始运行时发射该信号 ...

2018-08-23 18:59:12 423

原创 QT中的多线程编程

目录1、Qt中的多线程编程2、多线程间的同步3、多线程间的互斥1、线程锁2、信号量4、小结1、Qt中的多线程编程Qt中通过QThread直接支持多线程 - QThread是一个跨平台的多线程解决方案 - QThread以简洁易用的方式实现多线程编程QThread中的关键成员函数 - void run...

2018-08-22 16:57:33 834

原创 程序、进程与线程的概念

1、程序与进程的概念程序是计算机存储系统中的数据文件 - 源代码程序 ★ 文本文件,描述程序行为和功能 -可执行程序 ★ 二进制文件,直接加载并执行进程的概念 -广义概念 ★ 程序关于某个数据集合的一次运行活动 -狭义概念 ...

2018-08-22 16:57:08 124

原创 登录对话框的改进[Qt教程]

1、第一个版本对话框对话框及其类型[Qt教程]2、问题:没有实现验证码功能,容易被恶意程序攻击,盗取用户名和密码。3、登录对话框的改进需要主意的问题 -验证码必须动态随机产生 -验证码的显示避开使用标准组件(标签,文本框,等) -验证码应该附带足够多的障碍增加程序识别难度解决方案 ...

2018-08-22 16:56:52 148

原创 Qt图像处理与绘制(QImage和QPixmap)

1、图像处理与绘制设备无关图像类 - QImage -独立于具体硬件的图像类 -主要用于读写图像文件,针对IO访问而设计 -能够直接在像素级对图像进行处理设备相关图像类 -QPixmap -依赖于具体硬件的图像类 -主要是用于绘图,针对屏幕显示而设计 -显示效果依赖于所在平台的...

2018-08-21 14:49:16 1869

原创 Qt基础图形与文本绘制

1、基础图形绘制Qt图形系统中的坐标系 -物理坐标系(设备坐标系) ★ 原点(0, 0)在左上角的位置,单位:像素(点) ★ x坐标向右增长,y坐标向下增长 -逻辑坐标系 ★ 数学模型中的抽象坐标系,单位由具体问题决定 ★ 坐标轴...

2018-08-20 19:49:45 1017

原创 Qt模型视图中的委托

1、自定义委托委托的本质 -为视图提供数据编辑的上下文环境 -产生界面元素的工厂类 -能够使用和设置模型中的数据如何自定义一个委托类?自定义委托时需要重写的函数 1. createEditor 2. updateEditorGeometry...

2018-08-19 13:23:09 421

原创 Qt中的模型视图设计模式

(上)1、模型视图设计模式模型视图设计模式的核心思想 -模型(数据)与视图(显示)相分离 -模型对外提供标准接口存取数据(不关心数据如何显示) -视图自定义数据的显示方式(不关系数据如何组织存储)模型视图模式的直观理解模型视图模式的工作机制 -当数据发生改变时 ...

2018-08-17 10:22:55 552

原创 空白基类优化 ( Empty base optimization )

1、C语言中的空结构体曾对C语言中的空结构体进行了简单分析(直达) 2、空类对象的大小下面输出什么?#include <iostream>using namespace std;class Base{ };int main(){ cout << sizeof(Base) << endl; return 0;}...

2018-08-16 16:16:37 219

原创 QT应用程序的打包与发布

1、调试与发布发布应用程序时的候选者 -调试版(debug) : 开发阶段生成的可执行程序 -发布版(release) : 最终产品的可执行程序调式版的可执行程序 -包含与调式相关的各种信息,体积巨大 -执行速度慢,支持断点调试发布版的可执行程序 -无任何冗余信息,体积小巧 ...

2018-08-15 12:37:22 157

原创 Qt程序中的配置文件和命令行参数

1、程序中的配置文件应用程序在运行后都有一个初始化的状态一般而言: -程序的初始状态是最近一次运行退出前的状态问题 如何保存和恢复程序状态?解决思路 -程序退出前保存状态参数到文件(数据库) -程序再次启动时读出状态参数并恢复状态参数的存储方式 -文本文件格式(XML,...

2018-08-15 10:37:36 306

原创 Qt 中的调色板(QPalette)

1、Qt中的调色板QPalette类包含了组件状态的颜色组QPalette对象包含3个状态的颜色描述 -激活颜色组(Active) 组件获得焦点使用的颜色搭配方案 -非激活颜色组(Inactive) 组件失去焦点使用的颜色方案 -失效颜色组(Disabled)...

2018-08-14 11:03:49 230

原创 Qt创建可复用查找、替换对话框

1、查找对话框查找对话框是应用程序中的常用部件目标: 开发一个可以在不同项目间复用的查找对话框查找对话框需求分析 -可复用软件部件 -查找文本框中的指定字符串 -能够指定查找方向 -支持大小写敏感查找 - 点击关闭按钮后隐藏 ...

2018-08-13 16:58:18 347

原创 Qt 中的事件处理

目录1、Qt中的事件处理1、事件(QEvent)和信号(SIGNAL)2、事件处理的顺序3、Qt中的事件过滤器4、Qt中的拖放事件5、小结1、Qt中的事件处理1、事件(QEvent)和信号(SIGNAL)图形界面应用程序的消息处理模型 操作系统发送的消息如何转变成Qt信号?...

2018-08-09 21:58:37 288

原创 Qt 中的文件操作[Qt教程]

目录1、Qt中的IO操作2、Qt中的文件操作(QFile、QFileInfo、QTemporaryFile)1、QFile、QFileInfo2、QTemporaryFile3、文本流和数据流(QTextStream和QDataStream)1、文件类型2、文本流和数据流4、缓冲区操作与目录操作(QBuffer、QDir和QFileSystemWatcher)...

2018-08-07 19:38:27 1360

原创 布局管理器[Qt教程]

目录1、布局管理器2、QBoxLayout和QGridLayout1、QBoxLayout2、QGridLayout3、小结3、QFormLayout和QStackedLayout1、QFormLayout2、QStackedLayout3、小结4、布局管理综合实例1、需求分析2、编程实验3、小结1、布局管理器绝对定位...

2018-08-05 13:55:16 1011

原创 Qt 中的标准对话框[Qt教程]

目录1、标准对话框2、QMessageBox和QFileDialog1、消息对话框2、文件对话框3、编程实验3、QColorDialog和QInputDialog1、颜色对话框2、输入对话框3、编程实验4、QFontDialog、QProgressDialog和QPrintDialog1、字体对话框2、进度对话框3、打印对话框...

2018-08-04 12:34:24 680

原创 对话框及其类型[Qt教程]

目录1、对话框及其类型1、对话框的概念2、对话框的类型3、对话框的返回值4、小结2、登录对话框实例分析1、登录对话框2、实例分析3、进一步的开发4、小结1、对话框及其类型1、对话框的概念对话框是与用户进行简短交互的顶层窗口QDialog是Qt中所有对话框窗口的基类QDialog继承于QWidget是一种容器类型的组件...

2018-08-02 13:10:36 201

原创 Qt 对象间的父子关系[Qt教程]

1、Qt对象间的关系Qt对象间可以存在父子关系 -每一个对象都保存有它所有子对象的指针 -每一个对象都有一个指向其父对象的指针当指定Qt对象的父对象时 -其父对象会在子对象链表中加入该对象的指针 -该对象会保存指向其父对象的指针2、编程实验对象间的父子关系 void fcTest();#include &lt...

2018-07-31 21:06:42 161

原创 用户界面与业务逻辑的分离[Qt教程]

1、界面与逻辑基本程序架构一般包含: -用户界面模块(UI) •接受用户输入及呈现数据 -业务逻辑模块(Business Logic) •根据用户需求处理数据用户界面与业务逻辑如何交互? (架构原则?)2、基本设计原则功能模块之间需要进行解耦...

2018-07-30 21:35:39 1915

原创 计算器核心解析算法[Qt教程]

1、计算器核心算法1. 将中缀表达式进行数字和运算符的分离2. 将中缀表达式转换为后缀表达式3. 通过后缀表达式计算最终结果2、分离算法思想初始num变量为空,遍历字符串每个字符(用字符串表示数字) 若遇到数字或小数点,累加到num变量,并用p...

2018-07-13 21:57:02 534

原创 Qt计算器界面的实现

目录1、启航!第一个应用实例1、QLineEdit组件2、设计与实现3、编程实验4、小结2、计算器界面代码重构1、重构的概念2、计算器界面代码重构3、小结3、初探Qt 中的消息处理1、Qt消息模型2、信号与槽3、为计算器实例添加消息处理函数4、小结1、启航!第一个应用实例1、QLineEdit组件QLineEd...

2018-07-12 16:42:19 773

原创 窗口与坐标系统【Qt教程】

目录1、窗口部件及窗口类型1、窗口组件2、QWidget组件3、QLabel组件4、窗口类型5、小结2、QT中的坐标系统1、坐标系统2、坐标系统相关的成员函数3、QPushButton组件4、窗口部件的大小设置5、小结1、窗口部件及窗口类型1、窗口组件图形用户界面由不同的窗口和窗口组件构成<QtGui&gt...

2018-07-12 16:41:15 235

原创 Qt Creator工程介绍

1、Qt Creator工程管理Qt Creator以工程项目的方式对源码进行管理一个Qt Creator工程包含不同类型的文件- .pro项目描述文件- .pro.user用户配置描述文件- .h头文件- .cpp 源文件...

2018-07-12 16:40:19 131

原创 GUI 程序原理和实例分析

目录1、GUI 程序原理分析1、命令行应用程序2、图形界面应用程序3、图形界面程序 vs 命令行程序2、GUI 程序实例分析1、GUI程序开发原理2、GUI程序开发实例3、小结3、QT的本质1、GUI用户界面元素2、实例分析3、QT的本质4、Hello QT4、小结1、GUI 程序原理分析1、命令行应用程序命令行应用程序...

2018-07-10 11:37:42 711 1

提示
确定要删除当前文章?
取消 删除