commit dac353a252561a81d7c288436cfd81a6ae10755f Author: zhangyongpan Date: Fri Jul 11 15:43:52 2025 +0800 张永攀推送 diff --git a/张永攀/IAR/IAR.md b/张永攀/IAR/IAR.md new file mode 100644 index 0000000..68fbfe0 --- /dev/null +++ b/张永攀/IAR/IAR.md @@ -0,0 +1,233 @@ +# IAR相关知识点 + +## 工程操作 + +### 各类型文件含义 + +- **.eww**:Embedded Workbench Workspace(嵌入式工作台工作空间文件) + 用于管理多个工程(.ewp 文件)的集合,记录工程的组织方式和打开状态。 +- **.ewp**:Embedded Workbench Project(嵌入式工作台工程文件) + 是 IAR 项目的核心文件,包含工程的配置信息(如编译选项、目标芯片、文件列表等)。 +- **.ewd**:Embedded Workbench Debugger Configuration(嵌入式工作台调试器配置文件) + 存储调试相关的设置,如断点、监视变量、调试器连接参数等。 +- **.c**:C Source File(C 语言源文件) + 通用的 C 语言源代码文件,并非 IAR 专属,所有 C 语言开发环境均可识别。 +- **.dep**:Dependency File(依赖文件) + 记录源文件之间的依赖关系(如头文件引用),用于编译系统判断文件是否需要重新编译。 +- **.ewt**:Embedded Workbench Template(嵌入式工作台模板文件) + 用于存储工程或文件的模板配置,方便快速创建具有相同设置的新项目。 +- **.s** 或 **.asm**:Assembly Source File(汇编源文件) + 包含汇编语言代码,用于编写对性能要求极高或直接操作硬件的程序段。 +- **.h**:Header File(头文件) + 存储函数原型、宏定义和类型声明,用于在多个源文件间共享接口定义。 +- **.out**:Output File(输出文件) + 编译链接后生成的中间文件,通常包含可执行代码和符号信息,可用于进一步处理。 + +### 新建/打开工作区 + +![image-20250708105919518](./pictures/image-20250708105919518.png) + +### 新建/打开工程 + +![image-20250708110035222](./pictures/image-20250708110035222.png) + +### 工作区中导入/添加工程 + +![image-20250708111507961](./pictures/image-20250708111507961.png) + +### 新建分组 + +![image-20250708121915830](./pictures/image-20250708121915830.png) + +### 新建/打开文件 + +![image-20250708122510344](./pictures/image-20250708122510344.png) + +### 工程目录与文件目录的关系 + +工程目录就是像linux里面的软连接,实际文件还是存在他自己的地方, + +## 工程配置 + +在工程文件中选择右键 选择`options`->`General options`->`target`->`Device`选择自己电脑所用的架构 + +![image-20250708130710152](./pictures/image-20250708130710152.png) + +## 编译配置 + +### 优化等级 + +选择上述图片里面的`C/C++ Compiler`->`Optimizations` [说明地址](https://www.bmrtech.com/Tech/tech_show/50.html) + +![image-20250708131625603](./pictures/image-20250708131625603.png) + +### 硬件浮点 + +![image-20250708132202198](./pictures/image-20250708132202198.png) + +### 预处理 + +选择`options`->`C/C++ Compiler`->`preprocessor` + +![image-20250710184018484](./pictures/image-20250710184018484.png) + +### 链接文件 + +选择`options`->`Linker`->`linker configuration file` 链接脚本控制内存分配(Flash/ROM、RAM 布局)关键硬件相关文件 + +![image-20250708133445445](./pictures/image-20250708133445445.png) + + + +### 文件路径配置 + +选择`options`->`C/C++ Compiler`->`preprocessor` + +![image-20250710184547839](./pictures/image-20250710184547839.png) + +### 输出文件配置 + +选择`options`->`Output Converter`选择生成的文件格式和文件名称 + +![image-20250708133903502](./pictures/image-20250708133903502.png) + +### 输出文件路径配置 + +点击`options`>`General Optons`>`Output` + +![image-20250710184648034](./pictures/image-20250710184648034.png) + +## 调试器配置 + +选择`options`->`Debugger`选择要烧录进单片机的方式 + +![image-20250708134300137](./pictures/image-20250708134300137.png) + +## 库相关配置 + +`options`->`General options`->`Liabrary Configuration` + +![image-20250708134436504](./pictures/image-20250708134436504.png) + +## 静态库的封装 + +创建一个项目,编写好函数,右键项目`options`->`General options`->`Output`选择生成的文件是Library + +![image-20250710091818054](./pictures/image-20250710091818054.png) + + + +2. 如果要屏蔽不想生成的文件可以把`Exclude from build` + +![image-20250710092312114](./pictures/image-20250710092312114.png) + +3. 选择生成的路径 + +![image-20250710185020725](./pictures/image-20250710185020725.png) + +4. 编译生成 + +![image-20250710185213899](./pictures/image-20250710185213899.png) + +## 静态库的调用 + +1. 配置静态库的路径 + +点击`Options`>`Linker `选择静态库的路径 + +![image-20250710185351540](./pictures/image-20250710185351540.png) + +2. 编写代码验证 + +![image-20250710185636976](./pictures/image-20250710185636976.png) + +## 工程调试 + + + +### 断点 + +#### 设置断点,删除断点 + +在侧边栏直接点一下出现红点即代表添加断点成功,再点一点即可取消断点 + +![image-20250710093412062](./pictures/image-20250710093412062.png) + +#### 禁用断点,启用断点 + +左键断点选择`Enable/disable Breakpoint` + +![image-20250710093743862](./pictures/image-20250710093743862.png) + +#### 条件断点 + +右键断点选中`Edit Breakpoint` + +![image-20250710094113043](./pictures/image-20250710094113043.png) + +设置i == 5触发断点 + +![image-20250710094231504](./pictures/image-20250710094231504.png) + +当i == 5时命中断点 + +![image-20250710094730465](./pictures/image-20250710094730465.png) + +### 监控信息 + +点击`View`>`Watch` + +![image-20250710094911134](./pictures/image-20250710094911134.png) + +### 寄存器信息 + +点击`View`>`Register` + +![image-20250710095007025](./pictures/image-20250710095007025.png) + +### 内存信息 + +点击`View`>`Memory` + +![image-20250710095042138](./pictures/image-20250710095042138.png) + +### 栈信息 + +点击`View`>`Stack` + +![image-20250710095309962](./pictures/image-20250710095309962.png) + +### 汇编信息 + +点击`View`>`Disassembly` + +![image-20250710095421681](./pictures/image-20250710095421681.png) + +### 调用堆栈信息 + +点击`View`>`Call Stack` + +![image-20250710095527566](./pictures/image-20250710095527566.png) + + + +![image-20250710095633035](./pictures/image-20250710095633035.png) + +### 单步调试 + +#### 逐过程 + +![image-20250710095744008](./pictures/image-20250710095744008.png) + +#### 逐语句 + +![image-20250710095806305](./pictures/image-20250710095806305.png) + +#### 复位 + +![image-20250710095819062](./pictures/image-20250710095819062.png) + +#### 跳出 + +![image-20250710095832140](./pictures/image-20250710095832140.png) + diff --git a/张永攀/IAR/pictures/image-20250708105919518.png b/张永攀/IAR/pictures/image-20250708105919518.png new file mode 100644 index 0000000..3b60d97 Binary files /dev/null and b/张永攀/IAR/pictures/image-20250708105919518.png differ diff --git a/张永攀/IAR/pictures/image-20250708110035222.png b/张永攀/IAR/pictures/image-20250708110035222.png new file mode 100644 index 0000000..6ce23ea Binary files /dev/null and b/张永攀/IAR/pictures/image-20250708110035222.png differ diff --git a/张永攀/IAR/pictures/image-20250708111507961.png b/张永攀/IAR/pictures/image-20250708111507961.png new file mode 100644 index 0000000..892a0ff Binary files /dev/null and b/张永攀/IAR/pictures/image-20250708111507961.png differ diff --git a/张永攀/IAR/pictures/image-20250708121915830.png b/张永攀/IAR/pictures/image-20250708121915830.png new file mode 100644 index 0000000..f6579f3 Binary files /dev/null and b/张永攀/IAR/pictures/image-20250708121915830.png differ diff --git a/张永攀/IAR/pictures/image-20250708122510344.png b/张永攀/IAR/pictures/image-20250708122510344.png new file mode 100644 index 0000000..c3c00fc Binary files /dev/null and b/张永攀/IAR/pictures/image-20250708122510344.png differ diff --git a/张永攀/IAR/pictures/image-20250708130710152.png b/张永攀/IAR/pictures/image-20250708130710152.png new file mode 100644 index 0000000..a3e284c Binary files /dev/null and b/张永攀/IAR/pictures/image-20250708130710152.png differ diff --git a/张永攀/IAR/pictures/image-20250708131625603.png b/张永攀/IAR/pictures/image-20250708131625603.png new file mode 100644 index 0000000..baa35f7 Binary files /dev/null and b/张永攀/IAR/pictures/image-20250708131625603.png differ diff --git a/张永攀/IAR/pictures/image-20250708131723796.png b/张永攀/IAR/pictures/image-20250708131723796.png new file mode 100644 index 0000000..baa35f7 Binary files /dev/null and b/张永攀/IAR/pictures/image-20250708131723796.png differ diff --git a/张永攀/IAR/pictures/image-20250708132123605.png b/张永攀/IAR/pictures/image-20250708132123605.png new file mode 100644 index 0000000..8140bf6 Binary files /dev/null and b/张永攀/IAR/pictures/image-20250708132123605.png differ diff --git a/张永攀/IAR/pictures/image-20250708132202198.png b/张永攀/IAR/pictures/image-20250708132202198.png new file mode 100644 index 0000000..00884c5 Binary files /dev/null and b/张永攀/IAR/pictures/image-20250708132202198.png differ diff --git a/张永攀/IAR/pictures/image-20250708133445445.png b/张永攀/IAR/pictures/image-20250708133445445.png new file mode 100644 index 0000000..349cafe Binary files /dev/null and b/张永攀/IAR/pictures/image-20250708133445445.png differ diff --git a/张永攀/IAR/pictures/image-20250708133903502.png b/张永攀/IAR/pictures/image-20250708133903502.png new file mode 100644 index 0000000..67131c2 Binary files /dev/null and b/张永攀/IAR/pictures/image-20250708133903502.png differ diff --git a/张永攀/IAR/pictures/image-20250708134300137.png b/张永攀/IAR/pictures/image-20250708134300137.png new file mode 100644 index 0000000..0ff8895 Binary files /dev/null and b/张永攀/IAR/pictures/image-20250708134300137.png differ diff --git a/张永攀/IAR/pictures/image-20250708134436504.png b/张永攀/IAR/pictures/image-20250708134436504.png new file mode 100644 index 0000000..e8a4b1d Binary files /dev/null and b/张永攀/IAR/pictures/image-20250708134436504.png differ diff --git a/张永攀/IAR/pictures/image-20250710091818054.png b/张永攀/IAR/pictures/image-20250710091818054.png new file mode 100644 index 0000000..36a501f Binary files /dev/null and b/张永攀/IAR/pictures/image-20250710091818054.png differ diff --git a/张永攀/IAR/pictures/image-20250710092248669.png b/张永攀/IAR/pictures/image-20250710092248669.png new file mode 100644 index 0000000..0fc84a3 Binary files /dev/null and b/张永攀/IAR/pictures/image-20250710092248669.png differ diff --git a/张永攀/IAR/pictures/image-20250710092312114.png b/张永攀/IAR/pictures/image-20250710092312114.png new file mode 100644 index 0000000..b092f99 Binary files /dev/null and b/张永攀/IAR/pictures/image-20250710092312114.png differ diff --git a/张永攀/IAR/pictures/image-20250710093412062.png b/张永攀/IAR/pictures/image-20250710093412062.png new file mode 100644 index 0000000..65afb84 Binary files /dev/null and b/张永攀/IAR/pictures/image-20250710093412062.png differ diff --git a/张永攀/IAR/pictures/image-20250710093743862.png b/张永攀/IAR/pictures/image-20250710093743862.png new file mode 100644 index 0000000..5ad7d8d Binary files /dev/null and b/张永攀/IAR/pictures/image-20250710093743862.png differ diff --git a/张永攀/IAR/pictures/image-20250710094113043.png b/张永攀/IAR/pictures/image-20250710094113043.png new file mode 100644 index 0000000..a189ce6 Binary files /dev/null and b/张永攀/IAR/pictures/image-20250710094113043.png differ diff --git a/张永攀/IAR/pictures/image-20250710094215522.png b/张永攀/IAR/pictures/image-20250710094215522.png new file mode 100644 index 0000000..96636a3 Binary files /dev/null and b/张永攀/IAR/pictures/image-20250710094215522.png differ diff --git a/张永攀/IAR/pictures/image-20250710094231504.png b/张永攀/IAR/pictures/image-20250710094231504.png new file mode 100644 index 0000000..96636a3 Binary files /dev/null and b/张永攀/IAR/pictures/image-20250710094231504.png differ diff --git a/张永攀/IAR/pictures/image-20250710094730465.png b/张永攀/IAR/pictures/image-20250710094730465.png new file mode 100644 index 0000000..91a036d Binary files /dev/null and b/张永攀/IAR/pictures/image-20250710094730465.png differ diff --git a/张永攀/IAR/pictures/image-20250710094911134.png b/张永攀/IAR/pictures/image-20250710094911134.png new file mode 100644 index 0000000..f22391a Binary files /dev/null and b/张永攀/IAR/pictures/image-20250710094911134.png differ diff --git a/张永攀/IAR/pictures/image-20250710095007025.png b/张永攀/IAR/pictures/image-20250710095007025.png new file mode 100644 index 0000000..d0dac40 Binary files /dev/null and b/张永攀/IAR/pictures/image-20250710095007025.png differ diff --git a/张永攀/IAR/pictures/image-20250710095042138.png b/张永攀/IAR/pictures/image-20250710095042138.png new file mode 100644 index 0000000..2f18b46 Binary files /dev/null and b/张永攀/IAR/pictures/image-20250710095042138.png differ diff --git a/张永攀/IAR/pictures/image-20250710095309962.png b/张永攀/IAR/pictures/image-20250710095309962.png new file mode 100644 index 0000000..9d86a3d Binary files /dev/null and b/张永攀/IAR/pictures/image-20250710095309962.png differ diff --git a/张永攀/IAR/pictures/image-20250710095421681.png b/张永攀/IAR/pictures/image-20250710095421681.png new file mode 100644 index 0000000..e795a8e Binary files /dev/null and b/张永攀/IAR/pictures/image-20250710095421681.png differ diff --git a/张永攀/IAR/pictures/image-20250710095527566.png b/张永攀/IAR/pictures/image-20250710095527566.png new file mode 100644 index 0000000..112d915 Binary files /dev/null and b/张永攀/IAR/pictures/image-20250710095527566.png differ diff --git a/张永攀/IAR/pictures/image-20250710095633035.png b/张永攀/IAR/pictures/image-20250710095633035.png new file mode 100644 index 0000000..4fa6469 Binary files /dev/null and b/张永攀/IAR/pictures/image-20250710095633035.png differ diff --git a/张永攀/IAR/pictures/image-20250710095744008.png b/张永攀/IAR/pictures/image-20250710095744008.png new file mode 100644 index 0000000..d06f45f Binary files /dev/null and b/张永攀/IAR/pictures/image-20250710095744008.png differ diff --git a/张永攀/IAR/pictures/image-20250710095806305.png b/张永攀/IAR/pictures/image-20250710095806305.png new file mode 100644 index 0000000..5ccfbe1 Binary files /dev/null and b/张永攀/IAR/pictures/image-20250710095806305.png differ diff --git a/张永攀/IAR/pictures/image-20250710095819062.png b/张永攀/IAR/pictures/image-20250710095819062.png new file mode 100644 index 0000000..461f5c3 Binary files /dev/null and b/张永攀/IAR/pictures/image-20250710095819062.png differ diff --git a/张永攀/IAR/pictures/image-20250710095832140.png b/张永攀/IAR/pictures/image-20250710095832140.png new file mode 100644 index 0000000..b20ee01 Binary files /dev/null and b/张永攀/IAR/pictures/image-20250710095832140.png differ diff --git a/张永攀/IAR/pictures/image-20250710184018484.png b/张永攀/IAR/pictures/image-20250710184018484.png new file mode 100644 index 0000000..c87bbb1 Binary files /dev/null and b/张永攀/IAR/pictures/image-20250710184018484.png differ diff --git a/张永攀/IAR/pictures/image-20250710184515203.png b/张永攀/IAR/pictures/image-20250710184515203.png new file mode 100644 index 0000000..f70be28 Binary files /dev/null and b/张永攀/IAR/pictures/image-20250710184515203.png differ diff --git a/张永攀/IAR/pictures/image-20250710184547839.png b/张永攀/IAR/pictures/image-20250710184547839.png new file mode 100644 index 0000000..c330ef8 Binary files /dev/null and b/张永攀/IAR/pictures/image-20250710184547839.png differ diff --git a/张永攀/IAR/pictures/image-20250710184648034.png b/张永攀/IAR/pictures/image-20250710184648034.png new file mode 100644 index 0000000..c1018b4 Binary files /dev/null and b/张永攀/IAR/pictures/image-20250710184648034.png differ diff --git a/张永攀/IAR/pictures/image-20250710185020725.png b/张永攀/IAR/pictures/image-20250710185020725.png new file mode 100644 index 0000000..cdd0385 Binary files /dev/null and b/张永攀/IAR/pictures/image-20250710185020725.png differ diff --git a/张永攀/IAR/pictures/image-20250710185213899.png b/张永攀/IAR/pictures/image-20250710185213899.png new file mode 100644 index 0000000..58577d1 Binary files /dev/null and b/张永攀/IAR/pictures/image-20250710185213899.png differ diff --git a/张永攀/IAR/pictures/image-20250710185351540.png b/张永攀/IAR/pictures/image-20250710185351540.png new file mode 100644 index 0000000..a2a84d5 Binary files /dev/null and b/张永攀/IAR/pictures/image-20250710185351540.png differ diff --git a/张永攀/IAR/pictures/image-20250710185636976.png b/张永攀/IAR/pictures/image-20250710185636976.png new file mode 100644 index 0000000..82a2a66 Binary files /dev/null and b/张永攀/IAR/pictures/image-20250710185636976.png differ diff --git a/张永攀/Library/Library.md b/张永攀/Library/Library.md new file mode 100644 index 0000000..d14016c --- /dev/null +++ b/张永攀/Library/Library.md @@ -0,0 +1,281 @@ +# 库相关知识点 +## 静态库 +### 静态库的基本概念 + +静态库(Static Library)是一种预先编译好的程序代码集合,以独立文件形式存在,供其他程序在编译时链接使用。它将多个目标文件(.o 或 .obj)打包为单一文件,简化了程序开发和部署流程。 + +### 核心特点 + +1. **编译时链接** + 链接器在编译阶段将静态库中的代码完整复制到可执行文件中,运行时无需依赖外部库文件。 +2. **独立性** + 生成的可执行文件不依赖外部库,便于在不同环境中部署,但会导致文件体积增大。 +3. **格式差异** + - **Windows**:通常以 `.lib` 为扩展名 + - **Unix/Linux/macOS**:使用 `.a`(archive)扩展名 + +### 静态库的生成 + +使用vs2022选择`C++`的`静态库`创建 + +![image-20250709185110253](./pictures/image-20250709185110253.png) + +写完代码,点击生成即可生产`.lab`文件 + +![image-20250709190120328](./pictures/image-20250709190120328.png) + +![image-20250709190224585](./pictures/image-20250709190224585.png) + +### 静态库的调用 + +#### 在工程配置中调用 + +1. 配置静态库的头文件选择`属性`>`C/C++`>`附加包含目录`将头文件目录配置上去 + +![image-20250709191548096](./pictures/image-20250709191548096.png) + +2. 配置静态库的所在位置,选择`属性`>`链接器`>`常规`>`附加库目录`配置其所在路径 + +![image-20250709191834414](./pictures/image-20250709191834414.png) + +3. 配置静态库的所在位置,选择`属性`>`链接器`>`输入`>`附加依赖项`配置其名字 + +![image-20250709192153729](./pictures/image-20250709192153729.png) + +4. 可以直接使用`#include ` + +![image-20250709192522012](./pictures/image-20250709192522012.png) + +#### 在代码中语句加载lib调用 + +先把需要引用的头文件还有`.lib`文件放在一起 + +```C++ +//第一行是引用头文件 +//第二行是引用静态库 +#include "C:\\Users\\徐加冠\\source\\repos\\LabTest\\x64\\Debug\\StaticLib.h" +#pragma comment(lib,"C:\\Users\\徐加冠\\source\\repos\\LabTest\\x64\\Debug\\StaticLib.lib") +``` + +![image-20250709191259138](./pictures/image-20250709191259138.png) + +## 动态库 +### 动态库的基本概念 + +动态库(Dynamic Library)是一种在程序运行时才被链接和加载的共享库文件,包含可被多个程序同时使用的代码和数据。与静态库(Static Library)在编译时被完整嵌入到可执行文件中不同,动态库在运行时才被动态加载到内存,实现代码复用并减少内存占用。 + +### 核心特点 + +1. **共享加载**:多个程序可共享同一份动态库实例,减少内存开销。 +2. **运行时链接**:程序启动时才加载动态库,而非编译时,提高开发灵活性。 +3. **独立更新**:动态库可独立于程序更新,无需重新编译整个程序。 +4. 跨平台差异: + - Windows:以 `.dll`(Dynamic Link Library)为扩展名。 + - Linux/macOS:以 `.so`(Shared Object)或 `.dylib`(Dynamic Library)为扩展名。 + +### 动态库的生成 + +#### 通过导出语句生成 + +1. 使用vs2022选择动态链接库创建空项目 + +![image-20250710102828844](./pictures/image-20250710102828844.png) + +2. 分别添加头文件和源文件 + +头文件的导出语句 + +```C++ +#pragma once + +#ifndef BHDLL_d +#define BHDLL_d + +//宏定义导出 +#ifdef BHDLL__//如果没有定义DLLH 就定义 DLLH __declspec(dllexport) +#define BHDLL __declspec(dllexport)//导出 +#else +#define BHDLL __declspec(dllimport)//导入 +#endif // DLLH__//如果没有定义DLLH 就定义 DLLH + +//编写代码区域 + +//导出函数 + +BHDLL int add(int a, int b); +BHDLL int sub(int a, int b); + +//导出类 + +class BHDLL dllH +{ +public: + int mul(int a, int b); + int div(int a, int b); +}; + +//以C语言方式导出函数: +extern "C" +{ + BHDLL int Cadd(int a, int b); + BHDLL int Csub(int a, int b); +} + + + +#endif +``` + +源文件代码 + +```C++ +#include "BH_dll.h" +#include + +using namespace std; + +int add(int a, int b) +{ + return a + b; +} +int sub(int a, int b) +{ + return a - b; +} + +int dllH::mul(int a, int b) +{ + return a * b; +} +int dllH::div(int a, int b) +{ + return a / b; +} + +int Cadd(int a, int b) +{ + return a + b; +} +int Csub(int a, int b) +{ + return a - b; +} +``` + +3. 修改项目属性改为dll动态库 + +![image-20250710103417243](./pictures/image-20250710103417243.png) + +点击重新生成,即可生成动态链接库 + +![image-20250710103520461](./pictures/image-20250710103520461.png) + + + +#### 通过模块文件生成 + +1. 使用vs2022创建一个空项目 + +![image-20250710104736756](./pictures/image-20250710104736756.png) + +2. 创建一个源文件 + +```C++ +#include "iostream" +void fun1() +{ + std::cout << "fun1" << std::endl; +} +void fun2() +{ + std::cout << "fun2" << std::endl; +} + +``` + +3. 创建一个edf配置文件 + +```edf +LIBRARY "test" + +EXPORTS +fun1 +fun2 +``` + +4. 修改项目的生成为.dll和输出的名字和上面`LIBRARY "test"`定义的名字要一致 + +![image-20250710105048084](./pictures/image-20250710105048084.png) + +5. 定义模块文件的位置点击`链接器`>`输入`>`模块定义文件` + +![image-20250710195629035](./pictures/image-20250710195629035.png) + +6. 点击重新生成就可以生成 + +![image-20250710105215199](./pictures/image-20250710105215199.png) + + + +### 动态库的调用 + +#### 在工程配置中调用 + +1. 点击项目属性配置其`C\C++`>`附加包含目录`,改成需要调用dll所在目录 + +![image-20250710123819771](./pictures/image-20250710123819771.png) + +2. 点击`链接器`>`常规`>`附加库目录` + +![image-20250710124000084](./pictures/image-20250710124000084.png) + +3. 点击`链接器`>`输入`>`附加依赖项`输入调用名字 + +![image-20250710124140907](./pictures/image-20250710124140907.png) + +4. 运行代码时需要把dll放在exe同文件夹下,不然会报错 + +![image-20250710124556617](./pictures/image-20250710124556617.png) + +5. 放在相同目录下运行成功 + +![image-20250710124711322](./pictures/image-20250710124711322.png) + + + +#### 在代码中语句加载lib调用 + +```C++ +#include "D:\\桌面\\x64\\Debug\\DllMy.h" +#pragma comment(lib,"D:\\桌面\\x64\\Debug\\DllMy.lib") +``` + + + +![image-20250710125301402](./pictures/image-20250710125301402.png) + + + +#### 在代码中语句加载dll调用 + +```C++ +HINSTANCE Dll = LoadLibrary(L"test.dll"); +if (Dll == NULL) { + std::cerr << "无法加载DLL! 错误码: " << GetLastError() << std::endl; + return 1; +} +typedef void (*Func)(); // 定义函数指针类型 +Func add = (Func)GetProcAddress(Dll, "fun1"); +add(); +FreeLibrary(Dll); +return 0; +``` + +![image-20250710130734676](./pictures/image-20250710130734676.png) + + + +ps:如果使用导出语句生成的dll,dll内部的函数名称和你定义的不一样,如果使用edf文件导出可以自定义函数名称 + + + diff --git a/张永攀/Library/pictures/image-20250709185110253.png b/张永攀/Library/pictures/image-20250709185110253.png new file mode 100644 index 0000000..5b10503 Binary files /dev/null and b/张永攀/Library/pictures/image-20250709185110253.png differ diff --git a/张永攀/Library/pictures/image-20250709190120328.png b/张永攀/Library/pictures/image-20250709190120328.png new file mode 100644 index 0000000..b410f9f Binary files /dev/null and b/张永攀/Library/pictures/image-20250709190120328.png differ diff --git a/张永攀/Library/pictures/image-20250709190224585.png b/张永攀/Library/pictures/image-20250709190224585.png new file mode 100644 index 0000000..75a54dc Binary files /dev/null and b/张永攀/Library/pictures/image-20250709190224585.png differ diff --git a/张永攀/Library/pictures/image-20250709191259138.png b/张永攀/Library/pictures/image-20250709191259138.png new file mode 100644 index 0000000..057f5fc Binary files /dev/null and b/张永攀/Library/pictures/image-20250709191259138.png differ diff --git a/张永攀/Library/pictures/image-20250709191548096.png b/张永攀/Library/pictures/image-20250709191548096.png new file mode 100644 index 0000000..31c8ae0 Binary files /dev/null and b/张永攀/Library/pictures/image-20250709191548096.png differ diff --git a/张永攀/Library/pictures/image-20250709191834414.png b/张永攀/Library/pictures/image-20250709191834414.png new file mode 100644 index 0000000..cd5eeea Binary files /dev/null and b/张永攀/Library/pictures/image-20250709191834414.png differ diff --git a/张永攀/Library/pictures/image-20250709192153729.png b/张永攀/Library/pictures/image-20250709192153729.png new file mode 100644 index 0000000..95aecdf Binary files /dev/null and b/张永攀/Library/pictures/image-20250709192153729.png differ diff --git a/张永攀/Library/pictures/image-20250709192522012.png b/张永攀/Library/pictures/image-20250709192522012.png new file mode 100644 index 0000000..7fcaa7c Binary files /dev/null and b/张永攀/Library/pictures/image-20250709192522012.png differ diff --git a/张永攀/Library/pictures/image-20250709194558852.png b/张永攀/Library/pictures/image-20250709194558852.png new file mode 100644 index 0000000..8b0c46b Binary files /dev/null and b/张永攀/Library/pictures/image-20250709194558852.png differ diff --git a/张永攀/Library/pictures/image-20250709195039852.png b/张永攀/Library/pictures/image-20250709195039852.png new file mode 100644 index 0000000..848d50e Binary files /dev/null and b/张永攀/Library/pictures/image-20250709195039852.png differ diff --git a/张永攀/Library/pictures/image-20250709195529752.png b/张永攀/Library/pictures/image-20250709195529752.png new file mode 100644 index 0000000..ba61307 Binary files /dev/null and b/张永攀/Library/pictures/image-20250709195529752.png differ diff --git a/张永攀/Library/pictures/image-20250710102828844.png b/张永攀/Library/pictures/image-20250710102828844.png new file mode 100644 index 0000000..683bab8 Binary files /dev/null and b/张永攀/Library/pictures/image-20250710102828844.png differ diff --git a/张永攀/Library/pictures/image-20250710103417243.png b/张永攀/Library/pictures/image-20250710103417243.png new file mode 100644 index 0000000..1bd5269 Binary files /dev/null and b/张永攀/Library/pictures/image-20250710103417243.png differ diff --git a/张永攀/Library/pictures/image-20250710103520461.png b/张永攀/Library/pictures/image-20250710103520461.png new file mode 100644 index 0000000..0e90eb2 Binary files /dev/null and b/张永攀/Library/pictures/image-20250710103520461.png differ diff --git a/张永攀/Library/pictures/image-20250710104736756.png b/张永攀/Library/pictures/image-20250710104736756.png new file mode 100644 index 0000000..85bd38b Binary files /dev/null and b/张永攀/Library/pictures/image-20250710104736756.png differ diff --git a/张永攀/Library/pictures/image-20250710105048084.png b/张永攀/Library/pictures/image-20250710105048084.png new file mode 100644 index 0000000..600ca6a Binary files /dev/null and b/张永攀/Library/pictures/image-20250710105048084.png differ diff --git a/张永攀/Library/pictures/image-20250710105215199.png b/张永攀/Library/pictures/image-20250710105215199.png new file mode 100644 index 0000000..03db8ad Binary files /dev/null and b/张永攀/Library/pictures/image-20250710105215199.png differ diff --git a/张永攀/Library/pictures/image-20250710123819771.png b/张永攀/Library/pictures/image-20250710123819771.png new file mode 100644 index 0000000..bd4f5ba Binary files /dev/null and b/张永攀/Library/pictures/image-20250710123819771.png differ diff --git a/张永攀/Library/pictures/image-20250710124000084.png b/张永攀/Library/pictures/image-20250710124000084.png new file mode 100644 index 0000000..a9282bf Binary files /dev/null and b/张永攀/Library/pictures/image-20250710124000084.png differ diff --git a/张永攀/Library/pictures/image-20250710124140907.png b/张永攀/Library/pictures/image-20250710124140907.png new file mode 100644 index 0000000..e215771 Binary files /dev/null and b/张永攀/Library/pictures/image-20250710124140907.png differ diff --git a/张永攀/Library/pictures/image-20250710124556617.png b/张永攀/Library/pictures/image-20250710124556617.png new file mode 100644 index 0000000..3df81ba Binary files /dev/null and b/张永攀/Library/pictures/image-20250710124556617.png differ diff --git a/张永攀/Library/pictures/image-20250710124711322.png b/张永攀/Library/pictures/image-20250710124711322.png new file mode 100644 index 0000000..6db7f17 Binary files /dev/null and b/张永攀/Library/pictures/image-20250710124711322.png differ diff --git a/张永攀/Library/pictures/image-20250710125301402.png b/张永攀/Library/pictures/image-20250710125301402.png new file mode 100644 index 0000000..f9b4194 Binary files /dev/null and b/张永攀/Library/pictures/image-20250710125301402.png differ diff --git a/张永攀/Library/pictures/image-20250710130734676.png b/张永攀/Library/pictures/image-20250710130734676.png new file mode 100644 index 0000000..c3e356f Binary files /dev/null and b/张永攀/Library/pictures/image-20250710130734676.png differ diff --git a/张永攀/Library/pictures/image-20250710195629035.png b/张永攀/Library/pictures/image-20250710195629035.png new file mode 100644 index 0000000..02612f3 Binary files /dev/null and b/张永攀/Library/pictures/image-20250710195629035.png differ diff --git a/张永攀/MarkDown/Typora.md b/张永攀/MarkDown/Typora.md new file mode 100644 index 0000000..156d11c --- /dev/null +++ b/张永攀/MarkDown/Typora.md @@ -0,0 +1,290 @@ + + + + +# Markdown相关知识点 + +# 标题相关 + +一级标题为1个# + +二级标题为2个# + +三级标题为3个# + +例子: + +# 这是一级标题 + +## 这是二级标题 + +### 这是三级标题 + +# 标号相关 + + + +## 无序标号 + +*/+/- + 空格 + 标题 + +* Part A + ++ Part B + +- Part C + + + +## 有序标号 + +数字 + 英文句号 + 空格 + 标题 + +1. Part A +2. Part B +3. Part C + + + +## 标号嵌套 + +回车之后按一个tab + +### 有序嵌套有序 + +1. Part A +2. Part B + 1. part B.A + 2. Part B.B + +3. Part C + 1. Part C.A + 2. Part C.B + 1. Part C.B.A + 2. Part C.B.B +4. Part D + +### 无序嵌套无序 + +* 水果 + * 苹果 + * 香蕉 + * 西瓜 +* 蔬菜 + * 根茎类 + * 土豆 + * 马铃薯 + * 胡萝卜 + * 叶子类 + * 芹菜 + * 菠菜 + * 青菜 + +### 有序嵌套无序 + +1. 一级标题 + +2. 二级标题 + + * 子项 1 + + * 子项 2 + + 1. 子子项 1 + + + 子子项 2 + +3. 三级标题 + +4. 四级标题 + + + +# 文字相关 + +## 加粗 + +格式为 *\*加粗的信息** 两个星号包裹起来 + +这个是**加粗的信息** + +## 倾斜 + +格式为\*倾斜的信息\* 一个星号包裹起来 + +这个是*倾斜的信息* + +## 加粗和倾斜 + +格式为\*\*\*倾斜的信息\*\*\* 三个个星号包裹起来 + +这个是***加粗和倾斜的信息*** + +# 代码块 + + + +## 单行代码块 + +使用反引号(`)将代码包围起来。 + +这是一个示例代码`Console.Write("Hello, world");` + + + +## 多行代码块 + +- 用三个反引号(\`\`\`)包裹代码,可在起始符号后指定编程语言(如`C#`)以开启语法高亮。 + +```C# +using System; + +namespace HelloWorld +{ + class Program + { + static void Main(string[] args) + { + Console.WriteLine("Hello, World!"); + } + } +} +``` + + + +# 超链接 + +## 文字超链接 + +* 行内式超链接 + +语法格式为`[链接文本](链接地址)`。 + +这是一个示例[百度](https://www.baidu.com) + +* 参考式超链接 + +另外一种格式`[链接文本](链接地址)` 后面在定义一个`[链接标识符]: 链接地址` + +先定义[tencent - cloud]: https://cloud.tencent.com 这个定义可以定义在任何地方 + +在使用 + +[腾讯云][tencent - cloud] + +* 自动链接 + +直接使用尖括号`<>`包裹 URL, + +百度网址 + + + +## 图片超链接 + +格式为`[![错误显示](可以是本地地址也可以是远程地址)](跳转的地址)` + +[![mark](https://markdown-here.com/img/icon256.png)](https://markdown-here.com/) + + + + + +## 页面内跳转 + +**使用 HTML 锚点标签**:在跳转目标位置添加 HTML 标签并设置`id`属性,例如`

目标章节

`。然后在跳转链接处使用`href`指向这个`id`,链接格式为`[跳转到目标章节](#target - section)`。渲染成 HTML 后,点击 “跳转到目标章节” 就会跳转到相应标题处。 + +[点击跳转到目标章节](#target-section) + +[回到顶部](#top) + +**直接定义**:语法 `[文字描述](#跳转的标题)` + +[标号嵌套](#标号嵌套) + +# 其他 + +## 分割线 + +- 用三个或以上的 `-`(短横线)、`*`(星号)或 `+`(加号),并单独占一行。 + +*** + +--- + ++++ + +___ + +## 图片 + +格式为`![错误显示](可以是本地地址也可以是远程地址)` + +* 本地地址 + +![本地图片](./assets/icon256-1751871393146-5-1751871396237-7.png) + +* 远程地址 + +![mark](https://markdown-here.com/img/icon256.png) + +## 表格 + +```md +| 表头 | 表头 | +| ---- | ---- | +| 单元格 | 单元格 | +| 单元格 | 单元格 | + +| 左对齐 | 右对齐 | 居中对齐 | +| :-----| ----: | :----: | +| 单元格 | 单元格 | 单元格 | +| 单元格 | 单元格 | 单元格 | +``` + +| 表头1 | 表头2 | 表头三 | +| :----: | :----: | :----: | +| 单元格 | 单元格 | 单元格 | +| 单元格 | 单元格 | 单元格 | + +## 引用 + +引用使用`>`+ 你要引用的话 + +> 这是一行引用 + +多行引用直接依次书写,也可以引用图片,代码块,等等 + +> 这是引用 +> +> ```C# +> //引用代码块 +> Console.WriteLine("Hello, World!"); +> ``` +> +> * 标题一 +> * 标题二 +> * 标题三 + + + +# 路径 + + + +## 相对路径 + +就是直接根据当前md文件所在的目录开始 + +例子`./assets/icon256.png`; + +![图片](./assets/icon256.png) + +## 绝对路径 + +就是直接从C盘或者D盘开始 + +例子 + +![图片](./pictures/icon256.png) \ No newline at end of file diff --git a/张永攀/MarkDown/assets/icon256-1751871393146-5-1751871396237-7.png b/张永攀/MarkDown/assets/icon256-1751871393146-5-1751871396237-7.png new file mode 100644 index 0000000..321ce68 Binary files /dev/null and b/张永攀/MarkDown/assets/icon256-1751871393146-5-1751871396237-7.png differ diff --git a/张永攀/MarkDown/assets/icon256-1751871393146-5.png b/张永攀/MarkDown/assets/icon256-1751871393146-5.png new file mode 100644 index 0000000..321ce68 Binary files /dev/null and b/张永攀/MarkDown/assets/icon256-1751871393146-5.png differ diff --git a/张永攀/MarkDown/assets/icon256.png b/张永攀/MarkDown/assets/icon256.png new file mode 100644 index 0000000..321ce68 Binary files /dev/null and b/张永攀/MarkDown/assets/icon256.png differ diff --git a/张永攀/MarkDown/pictures/icon256.png b/张永攀/MarkDown/pictures/icon256.png new file mode 100644 index 0000000..321ce68 Binary files /dev/null and b/张永攀/MarkDown/pictures/icon256.png differ diff --git a/张永攀/SourceInsight/SourceInsight.md b/张永攀/SourceInsight/SourceInsight.md new file mode 100644 index 0000000..092d50f --- /dev/null +++ b/张永攀/SourceInsight/SourceInsight.md @@ -0,0 +1,68 @@ +# SourceInSight相关知识点 + +## 常规操作 + +### 工程新建/添加 + +点击`project`->`new progect` 第一个选择项目名称,第二个选择需要导入的代码目录 + +![image-20250708144042474](./pictures/image-20250708144042474.png) + +### 文件新建/添加 + +当创建一个工程的时候,让你选择添加到文件,选中想加入的文件夹,点击`Add Tree` + +![image-20250708152237774](./pictures/image-20250708152237774.png) + +添加完文件点击这个小书 + +![image-20250708152600062](./pictures/image-20250708152600062.png) + +![image-20250708154814072](./pictures/image-20250708154814072.png) + +### 符号表同步 + +![image-20250708161124106](./pictures/image-20250708161124106.png) + +### 视图切换 + +点击 `Window`>`Arrange Windows`>`Tile One Window`和two可以切换两个视图 + +![image-20250710161700362](./pictures/image-20250710161700362.png) + + + +### 常用窗口打开/关闭 + +上面三个按钮依次代表 + +* Project Window 窗口 右侧 查看我们的工程所在文件夹以及文件夹下的文件 +* Symbol Window 窗口左侧 用于查看我们开启的文件以及文件内所包含的函数 +* Context Window窗口 左下 用于查看,函数中某个参数与函数的关系 +* Relation Window窗口 右下 用于查看函数以及参数所定义的位置 + +![image-20250708161934639](./pictures/image-20250708161934639.png) + +### 搜索引用 + +1. 模糊查找 + + 符号包括:函数、宏、数据类型等 + 1、查找本文件的符号 + 2、查找项目文件 + 3、查找项目符号 + 4、文件目录 + +![image-20250711081727965](./pictures/image-20250711081727965.png) + +2. 精确查找 + +`Search`->`Lookup References` 引用查找 + +![image-20250711081933389](./pictures/image-20250711081933389.png) + +3. 当前文件查找 + +`Search`->`Search` 在当前文件查找 + +![image-20250711082234185](./pictures/image-20250711082234185.png) diff --git a/张永攀/SourceInsight/pictures/image-20250708144042474.png b/张永攀/SourceInsight/pictures/image-20250708144042474.png new file mode 100644 index 0000000..5935aee Binary files /dev/null and b/张永攀/SourceInsight/pictures/image-20250708144042474.png differ diff --git a/张永攀/SourceInsight/pictures/image-20250708152237774.png b/张永攀/SourceInsight/pictures/image-20250708152237774.png new file mode 100644 index 0000000..a604f4f Binary files /dev/null and b/张永攀/SourceInsight/pictures/image-20250708152237774.png differ diff --git a/张永攀/SourceInsight/pictures/image-20250708152600062.png b/张永攀/SourceInsight/pictures/image-20250708152600062.png new file mode 100644 index 0000000..c2ef120 Binary files /dev/null and b/张永攀/SourceInsight/pictures/image-20250708152600062.png differ diff --git a/张永攀/SourceInsight/pictures/image-20250708154814072.png b/张永攀/SourceInsight/pictures/image-20250708154814072.png new file mode 100644 index 0000000..04f961d Binary files /dev/null and b/张永攀/SourceInsight/pictures/image-20250708154814072.png differ diff --git a/张永攀/SourceInsight/pictures/image-20250708161124106.png b/张永攀/SourceInsight/pictures/image-20250708161124106.png new file mode 100644 index 0000000..1568e62 Binary files /dev/null and b/张永攀/SourceInsight/pictures/image-20250708161124106.png differ diff --git a/张永攀/SourceInsight/pictures/image-20250708161934639.png b/张永攀/SourceInsight/pictures/image-20250708161934639.png new file mode 100644 index 0000000..bfbc6d0 Binary files /dev/null and b/张永攀/SourceInsight/pictures/image-20250708161934639.png differ diff --git a/张永攀/SourceInsight/pictures/image-20250710161700362.png b/张永攀/SourceInsight/pictures/image-20250710161700362.png new file mode 100644 index 0000000..1bd74ec Binary files /dev/null and b/张永攀/SourceInsight/pictures/image-20250710161700362.png differ diff --git a/张永攀/SourceInsight/pictures/image-20250711081727965.png b/张永攀/SourceInsight/pictures/image-20250711081727965.png new file mode 100644 index 0000000..7da1cf7 Binary files /dev/null and b/张永攀/SourceInsight/pictures/image-20250711081727965.png differ diff --git a/张永攀/SourceInsight/pictures/image-20250711081933389.png b/张永攀/SourceInsight/pictures/image-20250711081933389.png new file mode 100644 index 0000000..d773be6 Binary files /dev/null and b/张永攀/SourceInsight/pictures/image-20250711081933389.png differ diff --git a/张永攀/SourceInsight/pictures/image-20250711082234185.png b/张永攀/SourceInsight/pictures/image-20250711082234185.png new file mode 100644 index 0000000..6133a5f Binary files /dev/null and b/张永攀/SourceInsight/pictures/image-20250711082234185.png differ diff --git a/张永攀/UnitTest/UnitTestVisualStudio.md b/张永攀/UnitTest/UnitTestVisualStudio.md new file mode 100644 index 0000000..4fd017e --- /dev/null +++ b/张永攀/UnitTest/UnitTestVisualStudio.md @@ -0,0 +1,100 @@ +# 单元测试相关知识点 +## 单元测试 +### 单元测试创建 + +打开vs2022选择`C++`的`测试`选择第一个`本机单元测试项目` + +![image-20250709155454475](./pictures/image-20250709155454475.png) + +ps:怎么添加一个项目到单元测试 在单元测试的时候需要添加现有项选择`obj`文件就能链接成功 + +![image-20250711142542564](./pictures/image-20250711142542564.png) + +### 代码覆盖度 + +代码覆盖就是测试代码的每一条语句都要执行到,确保不发生错误 + +下面是编写的测试代码 + +![image-20250709170046904](./pictures/image-20250709170046904.png) + +以下是测试代码 + +![image-20250709170003432](./pictures/image-20250709170003432.png) + +### 运行性能 + +### 测试样例书写 + +1. 需要测试的代码 + +```C++ +double MathLibrary::Divide(double a, double b) { + if (b != 0) return a / b; + return 0.0; +} + +bool MathLibrary::IsPositive(int n) { + return n >= 0; +} + +bool MathLibrary::CheckRange(int a, int b) { + return (a > 0) && (b < 10); +} + +double MathLibrary::CalculateDiscount(int age, bool isMember) { + if (age < 18) + return isMember ? 0.25 : 0.20; + else + return isMember ? 0.15 : 0.10; +} +``` + +2. 以下时测试样例的书写 + +```C++ +#include "pch.h" +#include "CppUnitTest.h" +#include "MathLibrary.h" + +using namespace Microsoft::VisualStudio::CppUnitTestFramework; + +namespace UnitTestDemo +{ + TEST_CLASS(UnitTestDemo) + { + public: + + // 语句覆盖 + TEST_METHOD(Divide_ZeroDivisor1) { Assert::AreEqual(0.0, MathLibrary::Divide(4, 0)); } + TEST_METHOD(Divide_ZeroDivisor2) { Assert::AreEqual(0.0, MathLibrary::Divide(4, 0)); } + + // 分支覆盖 + TEST_METHOD(IsPositive_Positive1) { Assert::IsTrue(MathLibrary::IsPositive(5)); } + TEST_METHOD(IsPositive_Negative2) { Assert::IsFalse(MathLibrary::IsPositive(-5)); } + + // 条件覆盖 + TEST_METHOD(CheckRange_BothTrue1) { Assert::IsTrue(MathLibrary::CheckRange(5, 5)); } + TEST_METHOD(CheckRange_FirstFalse2) { Assert::IsFalse(MathLibrary::CheckRange(-5, 5)); } + TEST_METHOD(CheckRange_SecondFalse3) { Assert::IsFalse(MathLibrary::CheckRange(5, 15)); } + + // 路径覆盖 + TEST_METHOD(Discount_TeenMember1) { Assert::AreEqual(0.25, MathLibrary::CalculateDiscount(15, true)); } + TEST_METHOD(Discount_TeenNonMember2) { Assert::AreEqual(0.20, MathLibrary::CalculateDiscount(15, false)); } + TEST_METHOD(Discount_AdultMember3) { Assert::AreEqual(0.15, MathLibrary::CalculateDiscount(20, true)); } + TEST_METHOD(Discount_AdultNonMember4) { Assert::AreEqual(0.10, MathLibrary::CalculateDiscount(20, false)); } + + + }; +} +``` + +### 单元测试的调试 + +在需要调试的位置打上断点,右键点击`调试测试` + +![image-20250710135842421](./pictures/image-20250710135842421.png) + + + +![image-20250710135748248](./pictures/image-20250710135748248.png) \ No newline at end of file diff --git a/张永攀/UnitTest/pictures/image-20250709155454475.png b/张永攀/UnitTest/pictures/image-20250709155454475.png new file mode 100644 index 0000000..0279fa4 Binary files /dev/null and b/张永攀/UnitTest/pictures/image-20250709155454475.png differ diff --git a/张永攀/UnitTest/pictures/image-20250709170003432.png b/张永攀/UnitTest/pictures/image-20250709170003432.png new file mode 100644 index 0000000..00fa513 Binary files /dev/null and b/张永攀/UnitTest/pictures/image-20250709170003432.png differ diff --git a/张永攀/UnitTest/pictures/image-20250709170046904.png b/张永攀/UnitTest/pictures/image-20250709170046904.png new file mode 100644 index 0000000..b52a11c Binary files /dev/null and b/张永攀/UnitTest/pictures/image-20250709170046904.png differ diff --git a/张永攀/UnitTest/pictures/image-20250710135748248.png b/张永攀/UnitTest/pictures/image-20250710135748248.png new file mode 100644 index 0000000..5a9c8b3 Binary files /dev/null and b/张永攀/UnitTest/pictures/image-20250710135748248.png differ diff --git a/张永攀/UnitTest/pictures/image-20250710135842421.png b/张永攀/UnitTest/pictures/image-20250710135842421.png new file mode 100644 index 0000000..81be13d Binary files /dev/null and b/张永攀/UnitTest/pictures/image-20250710135842421.png differ diff --git a/张永攀/UnitTest/pictures/image-20250711142521042.png b/张永攀/UnitTest/pictures/image-20250711142521042.png new file mode 100644 index 0000000..f2052df Binary files /dev/null and b/张永攀/UnitTest/pictures/image-20250711142521042.png differ diff --git a/张永攀/UnitTest/pictures/image-20250711142542564.png b/张永攀/UnitTest/pictures/image-20250711142542564.png new file mode 100644 index 0000000..8bc0948 Binary files /dev/null and b/张永攀/UnitTest/pictures/image-20250711142542564.png differ diff --git a/张永攀/VisualStudio/VisualStudio.md b/张永攀/VisualStudio/VisualStudio.md new file mode 100644 index 0000000..a1752d6 --- /dev/null +++ b/张永攀/VisualStudio/VisualStudio.md @@ -0,0 +1,240 @@ +# VisualStudio相关知识点 + +## 工程创建 + +### 工程相关 + +#### 创建/打开项目 + +1. 打开vs2022,选择创建`新项目`,选择`控制台`项目 + +![image-20250709094808484](./pictures/image-20250709094808484.png) + +2. 给项目起一个名字 点击`创建` + +![image-20250709094954912](./pictures/image-20250709094954912.png) + +3. 创建成功的界面 + +![image-20250709095131841](./pictures/image-20250709095131841.png) + +#### 加载/卸载项目 + +1. **加载项目**:在资源管理器上右键选择`添加`>`现有项目`选择创建的C++的项目 + +![image-20250709095855890](./pictures/image-20250709095855890.png) + +资源管理器中已经有两个项目 + +![image-20250709100041991](./pictures/image-20250709100041991.png) + +2. **卸载项目**:右键所需要卸载的项目点击卸载项目 + +![image-20250709100156150](./pictures/image-20250709100156150.png) + +显示已经被卸载 + +![image-20250709100310479](./pictures/image-20250709100310479.png) + + + +ps:如果想要隐藏想要卸载的项目可以在资源管理器上右键选择`隐藏所卸载的项目` + +#### 设置启动项 + +想要那个项目作为启动项可以在这个项目上面右键选择`设置为启动项` + +![image-20250709100701091](./pictures/image-20250709100701091.png) + +### 解决方案相关 + +#### 添加项目 + +在解决方案上右键选择`添加`>`添加新建项`就会跳到创建项目界面,参考上面的[创建/打开项目](#创建/打开项目) + +![image-20250709101356150](./pictures/image-20250709101356150.png) + + + +### 文件相关 + +#### 创建/打开文件 + +![image-20250710193728183](./pictures/image-20250710193728183.png) + + + +#### 包括/排除文件 + +![image-20250710193746629](./pictures/image-20250710193746629.png) + + + +## 工程配置 + +### 解决方案配置 + +可以选中`Debug`和`Relase`版本 + +点击`属性`>`配置管理器`选择配置 + +![image-20250710193859886](./pictures/image-20250710193859886.png) + +### 平台配置 + +点击`属性`>`平台`可以选择x64和win32 + +![image-20250710182225697](./pictures/image-20250710182225697.png) + +### 项目类型配置 + +在需要配置的项目右键点击`属性`>`配置类型`可以选择exe和dll和lib + +![image-20250710182341784](./pictures/image-20250710182341784.png) + +### 路径配置 + +* 输出路径配置 + +点击`属性`>`常规`>`输出目录` + +![image-20250709122232508](./pictures/image-20250709122232508.png) + +* 头文件路径配置 + +![image-20250710182812661](./pictures/image-20250710182812661.png) + +* 源文件路径配置 + +![image-20250710185808699](./pictures/image-20250710185808699.png) + +* 库文件路径配置 + +![image-20250710185824334](./pictures/image-20250710185824334.png) + +### 宏定义 + +右键项目属性点击`C/C++`>`预生成器`>`点击预处理器定义` + +![image-20250709123345719](./pictures/image-20250709123345719.png) + +### 运行库配置 + +1. **多线程调试 (/MTd)** + - 静态链接调试版运行库,生成的可执行文件独立运行,但体积较大。 + - 适用于调试环境,无需依赖外部 DLL。 +2. **多线程 (/MT)** + - 静态链接发布版运行库,生成的文件同样独立运行,但不含调试信息。 + - 适用于发布版本,减小依赖。 +3. **多线程调试 DLL (/MDd)** + - 动态链接调试版运行库,依赖系统或项目目录中的调试 DLL(如 `msvcrtd.dll`)。 + - 适用于调试环境,减小可执行文件体积。 +4. **多线程 DLL (/MD)** + - 动态链接发布版运行库,依赖系统或项目目录中的发布 DLL(如 `msvcr120.dll`)。 + - 适用于发布版本,多个程序可共享同一 DLL。 + +![image-20250710185938310](./pictures/image-20250710185938310.png) + +### 调用库配置 + +1. 配置静态库的头文件选择`属性`>`C/C++`>`附加包含目录`将头文件目录配置上去 + +![image-20250709191548096](./pictures/image-20250709191548096.png) + +2. 配置静态库的所在位置,选择`属性`>`链接器`>`常规`>`附加库目录`配置其所在路径 + +![image-20250709191834414](./pictures/image-20250709191834414.png) + +3. 配置静态库的所在位置,选择`属性`>`链接器`>`输入`>`附加依赖项`配置其名字 + +![image-20250710190647504](./pictures/image-20250710190647504.png) + +### 安全检查 + +右键点击项目 > `属性` >`C/C++` >`代码生成`>`安全检查`选择是否启用 + +![image-20250710184417173](./pictures/image-20250710184417173.png) + +## 工程调试 + +### 断点 + +#### 断点创建 + +在最左侧侧边栏,出现红点就说明断点添加成功 + +![image-20250709130209401](./pictures/image-20250709130209401.png) + +#### 断点删除 + +再次点击断点,即可删除 + +#### 断点禁用,启用 + +右键断点,即可选择是否启动,禁用断点 + +![image-20250709130411051](./pictures/image-20250709130411051.png) + +#### 条件断点 + +右键断点选择条件断点,设置条件为`i == 5`,表示当i=5时才会命中断点 + +![image-20250709130839975](./pictures/image-20250709130839975.png) + +运行程序就会发现当输出5边时候会命中断点 + +![image-20250709131410721](./pictures/image-20250709131410721.png) + +## 窗口 + +### 监视窗口 + +点击上方`调试`>`窗口`>`监视` 可以选择监视窗口,也可以选择下方的自动窗口 + +![image-20250709133727219](./pictures/image-20250709133727219.png) + +### 内存窗口 + +点击上方`调试`>`窗口`>`内存` 可以选择 + +![image-20250709133920706](./pictures/image-20250709133920706.png) + +### 线程窗口 + +点击上方`调试`>`窗口`>`线程` 可以选择 + +![image-20250709134545386](./pictures/image-20250709134545386.png) + +### 调用堆栈窗口 + +点击上方`调试`>`窗口`>`调用堆栈` 可以选择 + +![image-20250709134732035](./pictures/image-20250709134732035.png) + +## 单步调试 + +### 全速运行 + +全速运行就是不命中断点,点击上方`调试`>`开始执行(不调试)`> + +![image-20250709135300740](./pictures/image-20250709135300740.png) + + + +### 重新运行 + +快捷站是`ctrl+shfit+F5` + +![image-20250709135437137](./pictures/image-20250709135437137.png) + +### 逐过程 + +快捷站是`F10` + +![image-20250709135530768](./pictures/image-20250709135530768.png) + +### 逐语句 + +快捷站是`F11` + +![image-20250709135551916](./pictures/image-20250709135551916.png) \ No newline at end of file diff --git a/张永攀/VisualStudio/pictures/image-20250709094808484.png b/张永攀/VisualStudio/pictures/image-20250709094808484.png new file mode 100644 index 0000000..b7662ea Binary files /dev/null and b/张永攀/VisualStudio/pictures/image-20250709094808484.png differ diff --git a/张永攀/VisualStudio/pictures/image-20250709094954912.png b/张永攀/VisualStudio/pictures/image-20250709094954912.png new file mode 100644 index 0000000..3081703 Binary files /dev/null and b/张永攀/VisualStudio/pictures/image-20250709094954912.png differ diff --git a/张永攀/VisualStudio/pictures/image-20250709095131841.png b/张永攀/VisualStudio/pictures/image-20250709095131841.png new file mode 100644 index 0000000..c241c77 Binary files /dev/null and b/张永攀/VisualStudio/pictures/image-20250709095131841.png differ diff --git a/张永攀/VisualStudio/pictures/image-20250709095855890.png b/张永攀/VisualStudio/pictures/image-20250709095855890.png new file mode 100644 index 0000000..4a041dd Binary files /dev/null and b/张永攀/VisualStudio/pictures/image-20250709095855890.png differ diff --git a/张永攀/VisualStudio/pictures/image-20250709100041991.png b/张永攀/VisualStudio/pictures/image-20250709100041991.png new file mode 100644 index 0000000..365d7de Binary files /dev/null and b/张永攀/VisualStudio/pictures/image-20250709100041991.png differ diff --git a/张永攀/VisualStudio/pictures/image-20250709100156150.png b/张永攀/VisualStudio/pictures/image-20250709100156150.png new file mode 100644 index 0000000..4f46d3c Binary files /dev/null and b/张永攀/VisualStudio/pictures/image-20250709100156150.png differ diff --git a/张永攀/VisualStudio/pictures/image-20250709100310479.png b/张永攀/VisualStudio/pictures/image-20250709100310479.png new file mode 100644 index 0000000..19d84ed Binary files /dev/null and b/张永攀/VisualStudio/pictures/image-20250709100310479.png differ diff --git a/张永攀/VisualStudio/pictures/image-20250709100701091.png b/张永攀/VisualStudio/pictures/image-20250709100701091.png new file mode 100644 index 0000000..66b092b Binary files /dev/null and b/张永攀/VisualStudio/pictures/image-20250709100701091.png differ diff --git a/张永攀/VisualStudio/pictures/image-20250709101356150.png b/张永攀/VisualStudio/pictures/image-20250709101356150.png new file mode 100644 index 0000000..97aca02 Binary files /dev/null and b/张永攀/VisualStudio/pictures/image-20250709101356150.png differ diff --git a/张永攀/VisualStudio/pictures/image-20250709111433546.png b/张永攀/VisualStudio/pictures/image-20250709111433546.png new file mode 100644 index 0000000..e4008ca Binary files /dev/null and b/张永攀/VisualStudio/pictures/image-20250709111433546.png differ diff --git a/张永攀/VisualStudio/pictures/image-20250709121743488.png b/张永攀/VisualStudio/pictures/image-20250709121743488.png new file mode 100644 index 0000000..ce00cd6 Binary files /dev/null and b/张永攀/VisualStudio/pictures/image-20250709121743488.png differ diff --git a/张永攀/VisualStudio/pictures/image-20250709122232508.png b/张永攀/VisualStudio/pictures/image-20250709122232508.png new file mode 100644 index 0000000..98840ab Binary files /dev/null and b/张永攀/VisualStudio/pictures/image-20250709122232508.png differ diff --git a/张永攀/VisualStudio/pictures/image-20250709123345719.png b/张永攀/VisualStudio/pictures/image-20250709123345719.png new file mode 100644 index 0000000..5599358 Binary files /dev/null and b/张永攀/VisualStudio/pictures/image-20250709123345719.png differ diff --git a/张永攀/VisualStudio/pictures/image-20250709125824784.png b/张永攀/VisualStudio/pictures/image-20250709125824784.png new file mode 100644 index 0000000..25c7e10 Binary files /dev/null and b/张永攀/VisualStudio/pictures/image-20250709125824784.png differ diff --git a/张永攀/VisualStudio/pictures/image-20250709130209401.png b/张永攀/VisualStudio/pictures/image-20250709130209401.png new file mode 100644 index 0000000..a31f329 Binary files /dev/null and b/张永攀/VisualStudio/pictures/image-20250709130209401.png differ diff --git a/张永攀/VisualStudio/pictures/image-20250709130411051.png b/张永攀/VisualStudio/pictures/image-20250709130411051.png new file mode 100644 index 0000000..830a76a Binary files /dev/null and b/张永攀/VisualStudio/pictures/image-20250709130411051.png differ diff --git a/张永攀/VisualStudio/pictures/image-20250709130839975.png b/张永攀/VisualStudio/pictures/image-20250709130839975.png new file mode 100644 index 0000000..927212d Binary files /dev/null and b/张永攀/VisualStudio/pictures/image-20250709130839975.png differ diff --git a/张永攀/VisualStudio/pictures/image-20250709131410721.png b/张永攀/VisualStudio/pictures/image-20250709131410721.png new file mode 100644 index 0000000..d34756d Binary files /dev/null and b/张永攀/VisualStudio/pictures/image-20250709131410721.png differ diff --git a/张永攀/VisualStudio/pictures/image-20250709133727219.png b/张永攀/VisualStudio/pictures/image-20250709133727219.png new file mode 100644 index 0000000..a4c55d1 Binary files /dev/null and b/张永攀/VisualStudio/pictures/image-20250709133727219.png differ diff --git a/张永攀/VisualStudio/pictures/image-20250709133920706.png b/张永攀/VisualStudio/pictures/image-20250709133920706.png new file mode 100644 index 0000000..f588039 Binary files /dev/null and b/张永攀/VisualStudio/pictures/image-20250709133920706.png differ diff --git a/张永攀/VisualStudio/pictures/image-20250709134545386.png b/张永攀/VisualStudio/pictures/image-20250709134545386.png new file mode 100644 index 0000000..c8fc825 Binary files /dev/null and b/张永攀/VisualStudio/pictures/image-20250709134545386.png differ diff --git a/张永攀/VisualStudio/pictures/image-20250709134732035.png b/张永攀/VisualStudio/pictures/image-20250709134732035.png new file mode 100644 index 0000000..501bce1 Binary files /dev/null and b/张永攀/VisualStudio/pictures/image-20250709134732035.png differ diff --git a/张永攀/VisualStudio/pictures/image-20250709135300740.png b/张永攀/VisualStudio/pictures/image-20250709135300740.png new file mode 100644 index 0000000..afdfaab Binary files /dev/null and b/张永攀/VisualStudio/pictures/image-20250709135300740.png differ diff --git a/张永攀/VisualStudio/pictures/image-20250709135437137.png b/张永攀/VisualStudio/pictures/image-20250709135437137.png new file mode 100644 index 0000000..76e8605 Binary files /dev/null and b/张永攀/VisualStudio/pictures/image-20250709135437137.png differ diff --git a/张永攀/VisualStudio/pictures/image-20250709135530768.png b/张永攀/VisualStudio/pictures/image-20250709135530768.png new file mode 100644 index 0000000..06b436e Binary files /dev/null and b/张永攀/VisualStudio/pictures/image-20250709135530768.png differ diff --git a/张永攀/VisualStudio/pictures/image-20250709135551916.png b/张永攀/VisualStudio/pictures/image-20250709135551916.png new file mode 100644 index 0000000..9f9c05d Binary files /dev/null and b/张永攀/VisualStudio/pictures/image-20250709135551916.png differ diff --git a/张永攀/VisualStudio/pictures/image-20250709191548096.png b/张永攀/VisualStudio/pictures/image-20250709191548096.png new file mode 100644 index 0000000..31c8ae0 Binary files /dev/null and b/张永攀/VisualStudio/pictures/image-20250709191548096.png differ diff --git a/张永攀/VisualStudio/pictures/image-20250709191834414.png b/张永攀/VisualStudio/pictures/image-20250709191834414.png new file mode 100644 index 0000000..cd5eeea Binary files /dev/null and b/张永攀/VisualStudio/pictures/image-20250709191834414.png differ diff --git a/张永攀/VisualStudio/pictures/image-20250710182034367.png b/张永攀/VisualStudio/pictures/image-20250710182034367.png new file mode 100644 index 0000000..ba31123 Binary files /dev/null and b/张永攀/VisualStudio/pictures/image-20250710182034367.png differ diff --git a/张永攀/VisualStudio/pictures/image-20250710182225697.png b/张永攀/VisualStudio/pictures/image-20250710182225697.png new file mode 100644 index 0000000..dccbccc Binary files /dev/null and b/张永攀/VisualStudio/pictures/image-20250710182225697.png differ diff --git a/张永攀/VisualStudio/pictures/image-20250710182341784.png b/张永攀/VisualStudio/pictures/image-20250710182341784.png new file mode 100644 index 0000000..c8a9b5f Binary files /dev/null and b/张永攀/VisualStudio/pictures/image-20250710182341784.png differ diff --git a/张永攀/VisualStudio/pictures/image-20250710182812661.png b/张永攀/VisualStudio/pictures/image-20250710182812661.png new file mode 100644 index 0000000..680d7c4 Binary files /dev/null and b/张永攀/VisualStudio/pictures/image-20250710182812661.png differ diff --git a/张永攀/VisualStudio/pictures/image-20250710184417173.png b/张永攀/VisualStudio/pictures/image-20250710184417173.png new file mode 100644 index 0000000..e04a844 Binary files /dev/null and b/张永攀/VisualStudio/pictures/image-20250710184417173.png differ diff --git a/张永攀/VisualStudio/pictures/image-20250710185808699.png b/张永攀/VisualStudio/pictures/image-20250710185808699.png new file mode 100644 index 0000000..c118b34 Binary files /dev/null and b/张永攀/VisualStudio/pictures/image-20250710185808699.png differ diff --git a/张永攀/VisualStudio/pictures/image-20250710185824334.png b/张永攀/VisualStudio/pictures/image-20250710185824334.png new file mode 100644 index 0000000..eb30479 Binary files /dev/null and b/张永攀/VisualStudio/pictures/image-20250710185824334.png differ diff --git a/张永攀/VisualStudio/pictures/image-20250710185938310.png b/张永攀/VisualStudio/pictures/image-20250710185938310.png new file mode 100644 index 0000000..c575383 Binary files /dev/null and b/张永攀/VisualStudio/pictures/image-20250710185938310.png differ diff --git a/张永攀/VisualStudio/pictures/image-20250710190352899.png b/张永攀/VisualStudio/pictures/image-20250710190352899.png new file mode 100644 index 0000000..7f5a673 Binary files /dev/null and b/张永攀/VisualStudio/pictures/image-20250710190352899.png differ diff --git a/张永攀/VisualStudio/pictures/image-20250710190647504.png b/张永攀/VisualStudio/pictures/image-20250710190647504.png new file mode 100644 index 0000000..62136e3 Binary files /dev/null and b/张永攀/VisualStudio/pictures/image-20250710190647504.png differ diff --git a/张永攀/VisualStudio/pictures/image-20250710193728183.png b/张永攀/VisualStudio/pictures/image-20250710193728183.png new file mode 100644 index 0000000..efae96f Binary files /dev/null and b/张永攀/VisualStudio/pictures/image-20250710193728183.png differ diff --git a/张永攀/VisualStudio/pictures/image-20250710193746629.png b/张永攀/VisualStudio/pictures/image-20250710193746629.png new file mode 100644 index 0000000..c905054 Binary files /dev/null and b/张永攀/VisualStudio/pictures/image-20250710193746629.png differ diff --git a/张永攀/VisualStudio/pictures/image-20250710193859886.png b/张永攀/VisualStudio/pictures/image-20250710193859886.png new file mode 100644 index 0000000..1589600 Binary files /dev/null and b/张永攀/VisualStudio/pictures/image-20250710193859886.png differ diff --git a/张永攀/soursetree/pictures/icon256.png b/张永攀/soursetree/pictures/icon256.png new file mode 100644 index 0000000..321ce68 Binary files /dev/null and b/张永攀/soursetree/pictures/icon256.png differ diff --git a/张永攀/soursetree/pictures/image-20250707164736795.png b/张永攀/soursetree/pictures/image-20250707164736795.png new file mode 100644 index 0000000..e9c569c Binary files /dev/null and b/张永攀/soursetree/pictures/image-20250707164736795.png differ diff --git a/张永攀/soursetree/pictures/image-20250707205049305.png b/张永攀/soursetree/pictures/image-20250707205049305.png new file mode 100644 index 0000000..60f5ecf Binary files /dev/null and b/张永攀/soursetree/pictures/image-20250707205049305.png differ diff --git a/张永攀/soursetree/pictures/image-20250708082856548.png b/张永攀/soursetree/pictures/image-20250708082856548.png new file mode 100644 index 0000000..aba3f99 Binary files /dev/null and b/张永攀/soursetree/pictures/image-20250708082856548.png differ diff --git a/张永攀/soursetree/pictures/image-20250708082947454.png b/张永攀/soursetree/pictures/image-20250708082947454.png new file mode 100644 index 0000000..3f95d03 Binary files /dev/null and b/张永攀/soursetree/pictures/image-20250708082947454.png differ diff --git a/张永攀/soursetree/pictures/image-20250708083410091.png b/张永攀/soursetree/pictures/image-20250708083410091.png new file mode 100644 index 0000000..9bc7dba Binary files /dev/null and b/张永攀/soursetree/pictures/image-20250708083410091.png differ diff --git a/张永攀/soursetree/pictures/image-20250708085328450.png b/张永攀/soursetree/pictures/image-20250708085328450.png new file mode 100644 index 0000000..65f0db5 Binary files /dev/null and b/张永攀/soursetree/pictures/image-20250708085328450.png differ diff --git a/张永攀/soursetree/pictures/image-20250708085714440.png b/张永攀/soursetree/pictures/image-20250708085714440.png new file mode 100644 index 0000000..2001e5c Binary files /dev/null and b/张永攀/soursetree/pictures/image-20250708085714440.png differ diff --git a/张永攀/soursetree/pictures/image-20250708091951015.png b/张永攀/soursetree/pictures/image-20250708091951015.png new file mode 100644 index 0000000..ca8f3fc Binary files /dev/null and b/张永攀/soursetree/pictures/image-20250708091951015.png differ diff --git a/张永攀/soursetree/pictures/image-20250708100756494.png b/张永攀/soursetree/pictures/image-20250708100756494.png new file mode 100644 index 0000000..15d0ca9 Binary files /dev/null and b/张永攀/soursetree/pictures/image-20250708100756494.png differ diff --git a/张永攀/soursetree/pictures/image-20250708101456398.png b/张永攀/soursetree/pictures/image-20250708101456398.png new file mode 100644 index 0000000..1b3babc Binary files /dev/null and b/张永攀/soursetree/pictures/image-20250708101456398.png differ diff --git a/张永攀/soursetree/pictures/image-20250708101555505.png b/张永攀/soursetree/pictures/image-20250708101555505.png new file mode 100644 index 0000000..a935408 Binary files /dev/null and b/张永攀/soursetree/pictures/image-20250708101555505.png differ diff --git a/张永攀/soursetree/pictures/image-20250708101839909.png b/张永攀/soursetree/pictures/image-20250708101839909.png new file mode 100644 index 0000000..785dcbe Binary files /dev/null and b/张永攀/soursetree/pictures/image-20250708101839909.png differ diff --git a/张永攀/soursetree/pictures/image-20250708101934246.png b/张永攀/soursetree/pictures/image-20250708101934246.png new file mode 100644 index 0000000..21e7208 Binary files /dev/null and b/张永攀/soursetree/pictures/image-20250708101934246.png differ diff --git a/张永攀/soursetree/pictures/image-20250708102637452.png b/张永攀/soursetree/pictures/image-20250708102637452.png new file mode 100644 index 0000000..b05fbe6 Binary files /dev/null and b/张永攀/soursetree/pictures/image-20250708102637452.png differ diff --git a/张永攀/soursetree/pictures/image-20250708102825494.png b/张永攀/soursetree/pictures/image-20250708102825494.png new file mode 100644 index 0000000..dc87193 Binary files /dev/null and b/张永攀/soursetree/pictures/image-20250708102825494.png differ diff --git a/张永攀/soursetree/pictures/image-20250708102849707.png b/张永攀/soursetree/pictures/image-20250708102849707.png new file mode 100644 index 0000000..dccd139 Binary files /dev/null and b/张永攀/soursetree/pictures/image-20250708102849707.png differ diff --git a/张永攀/soursetree/pictures/image-20250708103038424.png b/张永攀/soursetree/pictures/image-20250708103038424.png new file mode 100644 index 0000000..97a5b72 Binary files /dev/null and b/张永攀/soursetree/pictures/image-20250708103038424.png differ diff --git a/张永攀/soursetree/pictures/image-20250708103311599.png b/张永攀/soursetree/pictures/image-20250708103311599.png new file mode 100644 index 0000000..e57536e Binary files /dev/null and b/张永攀/soursetree/pictures/image-20250708103311599.png differ diff --git a/张永攀/soursetree/pictures/image-20250708103337318.png b/张永攀/soursetree/pictures/image-20250708103337318.png new file mode 100644 index 0000000..c21e6e5 Binary files /dev/null and b/张永攀/soursetree/pictures/image-20250708103337318.png differ diff --git a/张永攀/soursetree/pictures/image-20250708103406873.png b/张永攀/soursetree/pictures/image-20250708103406873.png new file mode 100644 index 0000000..157bc94 Binary files /dev/null and b/张永攀/soursetree/pictures/image-20250708103406873.png differ diff --git a/张永攀/soursetree/pictures/image-20250708103454627.png b/张永攀/soursetree/pictures/image-20250708103454627.png new file mode 100644 index 0000000..301f857 Binary files /dev/null and b/张永攀/soursetree/pictures/image-20250708103454627.png differ diff --git a/张永攀/soursetree/pictures/image-20250709082307168.png b/张永攀/soursetree/pictures/image-20250709082307168.png new file mode 100644 index 0000000..785b303 Binary files /dev/null and b/张永攀/soursetree/pictures/image-20250709082307168.png differ diff --git a/张永攀/soursetree/pictures/image-20250709082358335.png b/张永攀/soursetree/pictures/image-20250709082358335.png new file mode 100644 index 0000000..8933f11 Binary files /dev/null and b/张永攀/soursetree/pictures/image-20250709082358335.png differ diff --git a/张永攀/soursetree/pictures/image-20250709083313272.png b/张永攀/soursetree/pictures/image-20250709083313272.png new file mode 100644 index 0000000..3242c37 Binary files /dev/null and b/张永攀/soursetree/pictures/image-20250709083313272.png differ diff --git a/张永攀/soursetree/pictures/image-20250709083423371.png b/张永攀/soursetree/pictures/image-20250709083423371.png new file mode 100644 index 0000000..80f5746 Binary files /dev/null and b/张永攀/soursetree/pictures/image-20250709083423371.png differ diff --git a/张永攀/soursetree/pictures/image-20250709083501307.png b/张永攀/soursetree/pictures/image-20250709083501307.png new file mode 100644 index 0000000..2a512e7 Binary files /dev/null and b/张永攀/soursetree/pictures/image-20250709083501307.png differ diff --git a/张永攀/soursetree/pictures/image-20250709084625933.png b/张永攀/soursetree/pictures/image-20250709084625933.png new file mode 100644 index 0000000..b7e6743 Binary files /dev/null and b/张永攀/soursetree/pictures/image-20250709084625933.png differ diff --git a/张永攀/soursetree/pictures/image-20250709084649410.png b/张永攀/soursetree/pictures/image-20250709084649410.png new file mode 100644 index 0000000..7ea7801 Binary files /dev/null and b/张永攀/soursetree/pictures/image-20250709084649410.png differ diff --git a/张永攀/soursetree/pictures/image-20250709084751683.png b/张永攀/soursetree/pictures/image-20250709084751683.png new file mode 100644 index 0000000..6569c15 Binary files /dev/null and b/张永攀/soursetree/pictures/image-20250709084751683.png differ diff --git a/张永攀/soursetree/pictures/image-20250709091320725.png b/张永攀/soursetree/pictures/image-20250709091320725.png new file mode 100644 index 0000000..c5d3299 Binary files /dev/null and b/张永攀/soursetree/pictures/image-20250709091320725.png differ diff --git a/张永攀/soursetree/pictures/image-20250709091428330.png b/张永攀/soursetree/pictures/image-20250709091428330.png new file mode 100644 index 0000000..9dbf892 Binary files /dev/null and b/张永攀/soursetree/pictures/image-20250709091428330.png differ diff --git a/张永攀/soursetree/pictures/image-20250709091529159.png b/张永攀/soursetree/pictures/image-20250709091529159.png new file mode 100644 index 0000000..cd11479 Binary files /dev/null and b/张永攀/soursetree/pictures/image-20250709091529159.png differ diff --git a/张永攀/soursetree/pictures/image-20250709092307819.png b/张永攀/soursetree/pictures/image-20250709092307819.png new file mode 100644 index 0000000..c17a97a Binary files /dev/null and b/张永攀/soursetree/pictures/image-20250709092307819.png differ diff --git a/张永攀/soursetree/pictures/image-20250709092333614.png b/张永攀/soursetree/pictures/image-20250709092333614.png new file mode 100644 index 0000000..fd45f83 Binary files /dev/null and b/张永攀/soursetree/pictures/image-20250709092333614.png differ diff --git a/张永攀/soursetree/pictures/image-20250709092357896.png b/张永攀/soursetree/pictures/image-20250709092357896.png new file mode 100644 index 0000000..fd45f83 Binary files /dev/null and b/张永攀/soursetree/pictures/image-20250709092357896.png differ diff --git a/张永攀/soursetree/pictures/image-20250709094033231.png b/张永攀/soursetree/pictures/image-20250709094033231.png new file mode 100644 index 0000000..7813bb5 Binary files /dev/null and b/张永攀/soursetree/pictures/image-20250709094033231.png differ diff --git a/张永攀/soursetree/pictures/image-20250709094132166.png b/张永攀/soursetree/pictures/image-20250709094132166.png new file mode 100644 index 0000000..9c549c1 Binary files /dev/null and b/张永攀/soursetree/pictures/image-20250709094132166.png differ diff --git a/张永攀/soursetree/pictures/image-20250709094147028.png b/张永攀/soursetree/pictures/image-20250709094147028.png new file mode 100644 index 0000000..f1601f2 Binary files /dev/null and b/张永攀/soursetree/pictures/image-20250709094147028.png differ diff --git a/张永攀/soursetree/pictures/image-20250710140922797.png b/张永攀/soursetree/pictures/image-20250710140922797.png new file mode 100644 index 0000000..e117a99 Binary files /dev/null and b/张永攀/soursetree/pictures/image-20250710140922797.png differ diff --git a/张永攀/soursetree/pictures/image-20250710141037460.png b/张永攀/soursetree/pictures/image-20250710141037460.png new file mode 100644 index 0000000..265eb16 Binary files /dev/null and b/张永攀/soursetree/pictures/image-20250710141037460.png differ diff --git a/张永攀/soursetree/pictures/image-20250710141125800.png b/张永攀/soursetree/pictures/image-20250710141125800.png new file mode 100644 index 0000000..6905242 Binary files /dev/null and b/张永攀/soursetree/pictures/image-20250710141125800.png differ diff --git a/张永攀/soursetree/pictures/image-20250710141159384.png b/张永攀/soursetree/pictures/image-20250710141159384.png new file mode 100644 index 0000000..4b654fa Binary files /dev/null and b/张永攀/soursetree/pictures/image-20250710141159384.png differ diff --git a/张永攀/soursetree/pictures/image-20250711124736945.png b/张永攀/soursetree/pictures/image-20250711124736945.png new file mode 100644 index 0000000..18e1810 Binary files /dev/null and b/张永攀/soursetree/pictures/image-20250711124736945.png differ diff --git a/张永攀/soursetree/pictures/image-20250711130657767.png b/张永攀/soursetree/pictures/image-20250711130657767.png new file mode 100644 index 0000000..515dce4 Binary files /dev/null and b/张永攀/soursetree/pictures/image-20250711130657767.png differ diff --git a/张永攀/soursetree/pictures/image-20250711130722293.png b/张永攀/soursetree/pictures/image-20250711130722293.png new file mode 100644 index 0000000..d01c030 Binary files /dev/null and b/张永攀/soursetree/pictures/image-20250711130722293.png differ diff --git a/张永攀/soursetree/pictures/image-20250711131113752.png b/张永攀/soursetree/pictures/image-20250711131113752.png new file mode 100644 index 0000000..8f72766 Binary files /dev/null and b/张永攀/soursetree/pictures/image-20250711131113752.png differ diff --git a/张永攀/soursetree/pictures/image-20250711133954769.png b/张永攀/soursetree/pictures/image-20250711133954769.png new file mode 100644 index 0000000..a2e462b Binary files /dev/null and b/张永攀/soursetree/pictures/image-20250711133954769.png differ diff --git a/张永攀/soursetree/pictures/image-20250711134109661.png b/张永攀/soursetree/pictures/image-20250711134109661.png new file mode 100644 index 0000000..446dad1 Binary files /dev/null and b/张永攀/soursetree/pictures/image-20250711134109661.png differ diff --git a/张永攀/soursetree/pictures/image-20250711134250068.png b/张永攀/soursetree/pictures/image-20250711134250068.png new file mode 100644 index 0000000..446dad1 Binary files /dev/null and b/张永攀/soursetree/pictures/image-20250711134250068.png differ diff --git a/张永攀/soursetree/pictures/image-20250711134306193.png b/张永攀/soursetree/pictures/image-20250711134306193.png new file mode 100644 index 0000000..607ebd2 Binary files /dev/null and b/张永攀/soursetree/pictures/image-20250711134306193.png differ diff --git a/张永攀/soursetree/pictures/image-20250711134419976.png b/张永攀/soursetree/pictures/image-20250711134419976.png new file mode 100644 index 0000000..c9f9da5 Binary files /dev/null and b/张永攀/soursetree/pictures/image-20250711134419976.png differ diff --git a/张永攀/soursetree/pictures/image-20250711134517450.png b/张永攀/soursetree/pictures/image-20250711134517450.png new file mode 100644 index 0000000..1b1fb01 Binary files /dev/null and b/张永攀/soursetree/pictures/image-20250711134517450.png differ diff --git a/张永攀/soursetree/soursetree.md b/张永攀/soursetree/soursetree.md new file mode 100644 index 0000000..98a47f3 --- /dev/null +++ b/张永攀/soursetree/soursetree.md @@ -0,0 +1,356 @@ +# Git + +## Git的概念 + +Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。 + +## 三个区域的概念 + +* 工作区 就是你平时存放项目代码的地方 +* 暂存区 用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息 +* 仓库区 存放已经提交的数据,push 的时候,就是把这个区的数据 push 到远程git仓库了。 + +## 仓库的概念 + +Git 仓库(Repository)是一个包含项目所有历史版本、元数据和配置信息的目录。它本质上是一个隐藏的`.git`文件夹(位于项目根目录下),其中存储了: + +- **对象数据库**:保存所有文件的内容快照、提交记录、分支信息等。 +- **引用(Refs)**:指向特定提交的指针,如分支(branches)、标签(tags)。 +- **配置文件**:存储仓库的设置(如远程仓库地址、用户信息)。 + +## 节点的概念 + +在 Git 中,节点通常指的是版本控制系统中的**提交对象(Commit)**,它是 Git 数据结构中的基本单元。每个提交节点代表项目历史中的一个版本快照,通过有向图的方式形成 Git 的提交历史。 + +## 分支的概念 + +**分支(Branch)** 是版本控制的核心机制之一,它允许你在不干扰主开发线的情况下,并行开发多个特性或修复 bug。 + + + +# SourceTree + +## SourceTree的概念 + +SourceTree 是一款由 Atlassian 公司开发的**免费 Git 图形化界面客户端**,旨在帮助开发者更直观、高效地管理 Git 版本控制系统。它通过可视化界面简化了 Git 命令行操作,让复杂的版本控制流程(如分支管理、提交、合并、冲突解决等)变得更易操作,尤其适合 Git 新手或偏好图形化操作的用户。 + +## 仓库相关操作 + +### 创建本地仓库 + +点击Create,选中文件夹创建仓库 + +![image-20250707164736795](./pictures/image-20250707164736795.png) + +### 打开本地仓库 + +点开上方资源管理器可以打开仓库 + +![image-20250707205049305](./pictures/image-20250707205049305.png) + +### 克隆远程仓库 + +1. 先创建远程仓库,点击上方加号创建仓库,取名为GitDemo + +![image-20250708082856548](./pictures/image-20250708082856548.png) + +2. 复制https的链接 + +![image-20250708082947454](./pictures/image-20250708082947454.png) + +3. 点击soursetree的Clone,把复制的网址输入进去,并选择要克隆到本地的那个目录 + +![image-20250708083410091](./pictures/image-20250708083410091.png) + +### 获取 + +从远程仓库下载所有本地仓库中不存在的提交(commits)和引用(refs),但不会自动合并到当前工作分支。如果需要合并,需要手动marge + +```git +git fetch +``` + +![image-20250708085328450](./pictures/image-20250708085328450.png) + +当前还处于上次的分支没有合并 + +![image-20250708085714440](./pictures/image-20250708085714440.png) + +如果需要合并需要自己手动marge + +### 关联远程仓库 + +1. 创建一个本地仓库 + +2. 点击远端,添加一个远程仓库 + +![image-20250710140922797](./pictures/image-20250710140922797.png) + +3. 添加远程URl + +![image-20250710141037460](./pictures/image-20250710141037460.png) + +4. 点击推送,把本地修改的推送到云端 + +![image-20250710141125800](./pictures/image-20250710141125800.png) + +5. 去远程仓库发现文件已经推送上去 + +![image-20250710141159384](./pictures/image-20250710141159384.png) + +## 节点相关操作 + +### 提交 + +当在提交的时候要先拉取一下最新的代码,防止冲突 + +1. 先在hello.txt里面添加hello weather,然后将其修改的文件暂存到暂存区`git add` + + ![image-20250708091951015](./pictures/image-20250708091951015.png) + +2. 添加要提交的信息,勾上立即推送到变更到origin/master,相当于执行了`git commit && git push ` + +### 重置 + +`git reset` 的三种模式 + +1. `--soft` 模式 + +- **操作**:仅移动 HEAD 指针,不改变暂存区和工作区。 +- **效果**:提交被取消,但修改仍保留在暂存区(可直接重新提交)。 + +2. `--mixed` 模式(默认) + +- **操作**:移动 HEAD 指针,重置暂存区,但保留工作区。 +- **效果**:提交被取消,修改回到工作区(需重新 `git add`) + +3. `--hard` 模式 + +- **操作**:移动 HEAD 指针,重置暂存区和工作区。 +- **效果**:彻底删除提交,工作区恢复到指定提交的状态(修改会丢失) + +软合并为soft 混合合并为mixed 强行合并为hard + +![image-20250708100756494](./pictures/image-20250708100756494.png) + +1. 当点击混合模式之后,本地仓库会回退到那次修改,但是文件还是存在,需要手动确实是否删除或者保留,我选择直接删除,本地只剩下number.txt,云端上面有两个文件 + +![image-20250708101456398](./pictures/image-20250708101456398.png) + +![image-20250708101555505](./pictures/image-20250708101555505.png) + +当前本地和云端的版本不一致,要强行把本地的推送到云端 + +![image-20250708101839909](./pictures/image-20250708101839909.png) + +推送完会本地和云端会呈现一致 + +![image-20250708101934246](./pictures/image-20250708101934246.png) + +### 回滚提交 + +右键要回滚的版本,选择回滚提交 + +![image-20250708102637452](./pictures/image-20250708102637452.png) + +点击推送就能把云端的也回滚提交 + +![image-20250708102849707](./pictures/image-20250708102849707.png) + +## 分支相关操作 + + + +### 新建分支 + +点击上方的分支就能创建一个分支 + +![image-20250708103038424](./pictures/image-20250708103038424.png) + +### 切换分支 + +选择需要切换的分支,直接双击就能切换 + +### 合并分支 + +切换到master分支,选择上面的合并,选择需要合并的分支![image-20250708103311599](./pictures/image-20250708103311599.png) + +![image-20250708103337318](./pictures/image-20250708103337318.png) + +本地仓库也出现了dev-c.txt + +![image-20250708103406873](./pictures/image-20250708103406873.png) + +### 删除分支 + +右键要删除的分支,点击删除 + +![image-20250708103454627](./pictures/image-20250708103454627.png) + +### 制造冲突 + +冲突大概就是,两个人修改了相同的一个文件,git不知道那个在前,那个在后,也不知道是否要删除某一处,所有就会发生冲突 + +1. 先云端修改food.txt添加包子 + +![image-20250709082307168](./pictures/image-20250709082307168.png) + +2. 本地修改food.txt添加油条 + +![image-20250709082358335](./pictures/image-20250709082358335.png) + +3. 提交代码到云端显示提交不上去,推送被拒绝是因为远程仓库的`master`分支有本地仓库没有的更新。这一般是由于其他人向相同分支推送了新内容所导致的。 + +![image-20250709083313272](./pictures/image-20250709083313272.png) + +4. 先尝试拉去一下远端代码 + +![image-20250709083423371](./pictures/image-20250709083423371.png) + +git帮我们标记出了,head是代表本地修改的,=====下面是远端修改的内容 + +![image-20250709083501307](./pictures/image-20250709083501307.png) + +### 解决冲突 + +1. 发现冲突,要先去看一下上面的提交id,可以找到这段代码是谁写的,去询问是谁,看代码怎么修改,这边演示以为我的代码为标准,删除远端的代码修改 + +![image-20250709084649410](./pictures/image-20250709084649410.png) + +![image-20250709084625933](./pictures/image-20250709084625933.png) + +2. 去云端看看代码修改情况,发现和本地的一样 + +![image-20250709084751683](./pictures/image-20250709084751683.png) + +## 其他 + +### 书写忽略文件 + +在sourcetree上面点击`设置`>`高级`>`编辑` + +* 忽略指定名称文件 + +``` +//直接写出其名字 +config.ini +secrets.json +``` + +* 忽略以什么字符结尾的 + +``` +//使用通配符 +//忽略以.txt文件结尾的 +*.txt +// 忽略所有 .log 文件 +*.log +``` + +* 忽略整个文件夹 + +``` +//在文件夹后面加/ +# 忽略 logs 目录及其所有内容 +logs/ +# 忽略 target 目录 +target/ +``` + +### 停止跟踪 + +通过修改.gitignore忽视某个文件但是发现这个文件还是会被踪,只对没有被git commit 过的文件有效,也就是说如果你的文件被commit过后你再修改gitignore,这个时候gitignore对这个文件是无效的,这个时候就需要取消对某个文件的跟踪。 + +添加一个log文件 + +![image-20250711124736945](./pictures/image-20250711124736945.png) + +2. 这时提交上去,然后添加一个忽略文件,但是修改文件,依然会出现 + +![image-20250711130657767](./pictures/image-20250711130657767.png) + +![image-20250711130722293](./pictures/image-20250711130722293.png) + +3. 需要点击文件选择停止追踪 + +![image-20250711131113752](./pictures/image-20250711131113752.png) + +### 创建补丁 + +**创建补丁的原因** + +交给客户的版本是2.0版本的,随着公司的发展,项目已经到了3.0。 +这时候客户提出了一个bug,我们需要对其进行修复。 +因为客户所支付的款项只是到2.0版本的,我们不可能免费给客户升级到3.0版本。 +这个时候就可以使用打补丁的方式来提交代码。 + +项目开发的时候要求一个页面一个代码分支,同时要求代码写完之后要求指定的人来review, +还要求不能向Git分支提交太多次代码,否则分支就会很乱。 +这个时候,就可以让开发者将开发完的代码先提交到本地Git仓库,然后将所有的改动都打一个补丁,将补丁发给代码review者。代码review者,将补丁应用到本地的review分支进行代码review。 + +1. 先将修改的代码,暂存到本地,不提交云端,这里我修改了两处 + +![image-20250709091320725](./pictures/image-20250709091320725.png) + +2. 点击需要打补丁的节点 选择创建补丁 + +![image-20250709091428330](./pictures/image-20250709091428330.png) + +3. 点击创建补丁 + +![image-20250709091529159](./pictures/image-20250709091529159.png) + +### 应用补丁 + +1. 将分支切换到dev分支 +2. 点击上方的`操作`>`应用补丁`并选择补丁的位置 + +![image-20250709092357896](./pictures/image-20250709092357896.png) + +4. 可以看到补丁已经打到dev分支了,暂存在本地仓库 + +![image-20250709092307819](./pictures/image-20250709092307819.png) + +### 贮藏 + +当你现在需要帮同部门的人去改bug,但是自己的还没写完,也可能不想去动自己的本地代码,可以使用贮藏功能 + +ps 贮藏只会去储藏修改的和被git管理的文件 + +1. 点击上方的贮藏,添加一个说明语句 + +![image-20250711133954769](./pictures/image-20250711133954769.png) + +2. 发现工作区间是干净的的,贮藏下面多了一个分支 + +![image-20250711134109661](./pictures/image-20250711134109661.png) + +3. 当应用贮藏的时候会发现更改的和贮藏的都会保留 + +![image-20250711134306193](./pictures/image-20250711134306193.png) + +### 丢弃 + +如上图所示,当需要去除之前写的代码,需要点击丢弃,这里丢弃写的C文件 + +![image-20250711134419976](./pictures/image-20250711134419976.png) + +丢弃完发现暂存区只剩下C文件 + +![image-20250711134517450](./pictures/image-20250711134517450.png) + +### 移除 + +### 创建标签 + +在我们开发迭代过程中,会遇到这种情况,当前的版本是1.0.0。但需要找到版本号0.5.0的版本提交时,可能因为时间久远,不能快速定位到当时V0.5.0的提交记录,这个时候我们就需要进行标签管理了。比如我在发布1.0.0时,只需要在这个版本最后一个提交记录上打上标签, + +![image-20250709094132166](./pictures/image-20250709094132166.png) + +![image-20250709094033231](./pictures/image-20250709094033231.png) + +### 删除标签 + +在左侧标签页可以选择删除标签 + +![image-20250709094147028](./pictures/image-20250709094147028.png)