自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

这是一个c++热爱者的博客哟

这是一个c++热爱者的博客哟

  • 博客(434)
  • 资源 (10)
  • 问答 (1)
  • 收藏
  • 关注

原创 C++11 并发指南九(综合运用 C++11 多线程下生产者消费者模型详解)

前面八章介绍了 C++11 并发编程的基础(抱歉哈,第五章-第八章还在草稿中),本文将综合运用 C++11中的新的基础设施(主要是多线程、锁、条件变量)来阐述一个经典问题——,并给出完整的解决方案。

2023-01-29 13:07:15 4252

原创 C++11 并发指南六(atomic 类型详解四 C 风格原子操作介绍)

前面三篇文章《C++11 并发指南六(atomic 类型详解一 atomic_flag 介绍)》、《C++11 并发指南六( 类型详解二 std::atomic )》、《C++11 并发指南六(atomic 类型详解三 std::atomic (续))》都是采用 C++ 的方式介绍原子对象,本节我会给大家介绍 C++11 原子操作中 C 风格的 API。

2023-01-29 13:04:50 4575 1

原创 C++多线程07:thread_local

thread-local storage 和static(或者说global) 存储很类似,每一个线程都将拥有一份这个数据的拷贝,对象的生命周期从线程开始时开始(对于全局变量),或者首先分配空间。当线程退出的时候对象析构;一般在声明时赋值,在本thread中只执行一次。当用于类成员变量时,必须是static的。C++11 thread_local用法 - 知乎 (zhihu.com)存储类说明符 - cppreference.com。

2023-01-20 15:47:40 3165

原创 进制间的映射关系

不同进制本质上是数值的不同表示方式,具有相互映射关系。八进制和十六进制被视为二进制的简化形式:八进制每3位二进制对应1位(2³=8),十六进制每4位对应1位(2⁴=16)。这种分组方式使长二进制数更简洁,便于计算机领域使用。例如二进制110110111可分组为八进制667,110110111100转为十六进制DBC。不同进制就像不同语言表达同一概念,如二进制1010、十进制10和十六进制A都表示数值10。这种映射源于计算机底层使用二进制,而更高级进制能提高可读性。

2025-07-26 19:36:30 475

原创 进制定义与转换详解

本文系统介绍了进制的基本概念和转换方法。主要内容包括:1. 进制定义(二进制、八进制、十进制、十六进制)及各自特点;2. 进制转换方法(任意进制转十进制、十进制转任意进制、二进制与八/十六进制互转);3. 进制运算规则(加减法原理及示例);4. 计算机中负数的补码表示法。文章通过数学公式和具体示例,详细说明了不同进制间的转换技巧和运算规则,为理解计算机数据表示和编程基础提供了系统指导。各种进制的表示符号、权重计算和转换步骤均有清晰说明,并配有运算示例和总结表格。

2025-07-26 19:17:55 387

原创 高级语言与汇编语言的对应关系详解

高级语言与汇编语言的关系解析 本文通过生动的类比,揭示了高级语言与汇编语言之间的转换关系。高级语言(如C、Python)是程序员易于理解的抽象表达,而汇编语言则是计算机硬件直接执行的底层指令。文章详细阐述了: 两者的本质区别 高级语言:面向开发者,抽象简洁,可移植性强 汇编语言:面向硬件,与特定CPU架构绑定,执行效率高 编译转换过程 描述了从源代码到可执行文件的四个关键步骤:预处理→编译→汇编→链接,并通过GCC命令示例说明具体操作。 常见编程结构的底层实现 用汇编代码展示了变量、条件判断、循环和函数调用

2025-07-26 19:02:18 823

原创 机器语言基本概念

摘要: 机器语言是CPU直接执行的二进制指令(如10111000),执行快但可读性差;汇编语言是其符号化表示(如MOV EAX,1),与机器指令一一对应。两者在逆向工程中用于分析程序逻辑(如函数调用、验证流程)和修改行为(如跳过验证)。通过IDA Pro、Ghidra等工具,可将二进制代码反汇编为汇编语言进行调试与破解。掌握二者转换关系(如B8 01 00 00 00对应MOV EAX,1)是底层开发与安全分析的核心基础。

2025-07-26 18:56:32 447

原创 汇编语言入门:像搭积木一样写代码

汇编语言入门指南 本文介绍了汇编语言的基础知识和在Visual Studio中的环境配置方法。主要内容包括: 环境搭建:详细说明了如何在VS中创建空项目、配置MASM支持以及添加.asm文件。 基础程序结构:展示了一个完整的Hello World汇编程序框架,包含数据段、代码段和系统调用。 关键概念解析: 处理器指令集声明(.386) 内存模型和调用约定(.model) 数据定义语法(db/dw/dd/dq) 函数调用方式(invoke) 数据类型:介绍了字节、字、双字等基本数据类型的定义方法。 过程定义:

2025-07-26 18:51:12 434

原创 Visual Studio逆向工程配置指南:打造你的代码侦探工作室(Win32平台)

本文详细介绍了在Visual Studio中配置汇编语言开发环境的完整流程。从安装基础组件、创建MASM项目、编写测试代码,到配置编译调试环境,逐步指导搭建逆向工程开发平台。文章采用侦探破案的比喻,生动讲解每个配置步骤的作用和原理,包含截图示例和常见问题解决方案,适合逆向工程初学者快速搭建开发环境。最后提供了进阶配置建议和常用代码模板,帮助开发者顺利开启逆向分析工作。

2025-07-26 18:30:43 504

原创 汇编语言中的通用寄存器及其在逆向工程中的应用

汇编寄存器:逆向工程的核心工具 本文系统介绍了x86/x64架构中的通用寄存器系统及其在逆向工程中的应用要点: 寄存器分类: 32位(x86)提供8个通用寄存器(EAX/EBX/ECX/EDX/ESI/EDI/EBP/ESP) 64位(x64)扩展为16个寄存器(RAX-R15),并引入新的调用约定 关键特性: 向下兼容16位和8位访问模式 特定寄存器有专门用途(如ECX作计数器、EAX存储返回值) x64架构前4个函数参数通过寄存器传递 逆向工程应用: 通过寄存器使用模式分析函数调用约定 监控关键寄存器值

2025-07-26 18:19:47 503

原创 png封装操作,插值算法,压缩算法

摘要:PDFCorePngManager类提供了一系列处理PNG图像的方法,包括从CFX_DIBitmap提取PNG数据(完整RGBA、单独RGB或Alpha通道)、图像缩放(支持最近邻/双线性/双三次插值)以及PNG压缩(使用libimagequant)。该类还包含辅助功能如写入文件、提取像素数据等,并采用RAII管理资源,确保线程安全。移动端平台(Android/iOS)禁用PNG压缩功能。

2025-07-23 21:00:38 129

原创 MOV DWORD PTR DS:[0x12345678], 0x11223344

您提供的指令 MOV DWORD PTR DS:[0x12345678], 0x11223344 会将 32位(4字节)数据 0x11223344 写入内存地址 DS:[0x12345678] 开始的连续4个字节中。• 地址对齐:若 0x12345678 不是4的倍数(如地址末位是1/2/3),某些架构(如ARM)会触发对齐异常,但x86通常允许非对齐访问(可能有性能损失)。• 现代操作系统通常使用平坦内存模型(段基址为0),因此 DS:[0x12345678] 等效于绝对地址 0x12345678。

2025-07-23 12:33:45 256

原创 内存地址编号和 “地址位宽” 和 “内存寻址的最小单位” 之间的关系

计算机内存寻址的核心原理可概括为: 32位系统为每个进程分配4GB虚拟内存空间,源于32位地址总线的寻址能力上限(2³²=4GB地址),实际物理内存通过分页机制动态映射; 现代计算机以字节(8位)为最小寻址单位,这是历史兼容性、操作效率与硬件设计平衡的结果; 地址位宽(如32/64位)决定可寻址空间大小,而寻址单位(1字节)决定每个地址对应的数据量,二者共同构成计算机内存管理体系的基础设计规范。

2025-07-23 12:18:31 887

原创 libimagequant windows 编译

本文详细介绍了在Windows系统上编译32位和64位版本libimagequant_sys.a静态库的方法。对于32位编译,需要安装i686目标工具链和相应的32位C编译器(MSVC或MinGW),并通过cargo build指定i686目标。64位编译则需使用x86_64目标工具链,可以默认编译或明确指定x86_64目标。文章提供了两种编译工具链的具体配置步骤、验证方法以及常见问题解决方案,帮助开发者顺利完成跨平台静态库的编译工作。

2025-07-14 12:08:39 1224

原创 Rust配置国内源

摘要:本文提供了两种在Windows上加速x86架构Rust项目编译的方法。第一种是通过修改配置文件设置国内镜像源,包括Rustup工具链镜像、Cargo crate下载镜像和Git镜像,同时给出编译优化参数和其他建议。第二种是通过命令行快速设置国内镜像源,包括Rustup和Cargo的环境变量配置,并提供了验证方法和优化建议。两种方式都旨在解决国内用户下载依赖速度慢的问题,推荐使用清华大学或中科大等稳定镜像源。

2025-07-14 12:04:19 447

原创 podofo 一页四个区域写入字符

这段代码实现了一个PDF文档生成工具,主要功能如下: 1. **字符编码处理**: - 包含UTF-8与Unicode编码转换函数,支持1-4字节的UTF-8字符解析 - 提供Unicode到UTF-8的编码转换功能 2. **字体处理**: - 使用FreeType库获取字体文件包含的所有Unicode字符 - 能够提取字体支持的字符集并转换为UTF-8格式 3. **PDF生成**: - 基于Haru PDF库创建PDF文档 - 定义了页面布局参数(边距、行高、区域划分等) - 支持从字体文件中提取字符

2025-07-11 15:39:01 710

原创 libharu一页四个区域写入字符

这段代码实现了一个PDF文档生成工具,主要功能如下: 1. **字符编码处理**: - 包含UTF-8与Unicode编码转换函数,支持1-4字节的UTF-8字符解析 - 提供Unicode到UTF-8的编码转换功能 2. **字体处理**: - 使用FreeType库获取字体文件包含的所有Unicode字符 - 能够提取字体支持的字符集并转换为UTF-8格式 3. **PDF生成**: - 基于Haru PDF库创建PDF文档 - 定义了页面布局参数(边距、行高、区域划分等) - 支持从字体文件中提取字符

2025-07-11 12:18:42 112

原创 libharu写入 unicode区段的字符

本文介绍了一个C++程序,用于生成包含Unicode字符的PDF文档。程序定义了Unicode区块结构体(UnicodeBlock)和常量参数,包括每行字符数(40)、每页行数(120)、字体大小(13px)等排版参数。通过预定义的UNICODE_BLOCKS数组,程序涵盖了从基本拉丁字母(0x0000-0x007F)到通用印度数字形(0xA830-0xA83F)等200多个Unicode字符区块。该程序使用了Haru PDF库和FreeType库,旨在实现Unicode字符的可视化展示和PDF文档生成。

2025-07-10 19:07:18 105

原创 unicode区块定义

本文定义了一个UnicodeBlock结构体,包含起始/结束码点和区块名称,并列出了从0x0000到0xA71F范围内的主要Unicode区块。这些区块覆盖了拉丁字母、希腊字母、西里尔字母、阿拉伯字母、中日韩文字(CJK)以及各种符号和扩展字符集,每个区块通过十六进制范围和相关名称进行标识。该数据结构可用于字符编码处理、语言支持检测等应用场景。

2025-07-10 14:37:49 135

原创 libimagequant 在 mac 平台编译双架构

摘要:本文详细介绍了在 macOS 上编译 libimagequant 双架构通用二进制库的完整流程。首先通过 Rust 工具链分别编译 ARM64 和 x86_64 架构的静态库,然后使用 lipo 命令合并为通用二进制文件。文章包含构建脚本配置、验证方法和常见问题解决方案,最终生成同时支持 Intel 和 Apple Silicon 处理器的静态库。所有步骤均附有终端命令示例和预期输出,确保开发者能够顺利完成跨平台二进制文件的构建。

2025-07-10 10:01:57 321

原创 重置 Rust 工具链​

摘要:针对Rust工具链无法找到aarch64-apple-darwin目标核心库的问题,提供了两种解决方案:一是完全重置Rust工具链,包括卸载重装、正确配置目标平台和验证环境;二是针对brew安装的情况,通过Homebrew卸载后重新安装,并配置国内镜像加速。解决方案包含详细的命令行操作、环境变量设置和验证步骤,同时提供了Xcode工具链重置、Docker构建等备选方案。最后强调需检查工具链结构并验证安装,确保能正确编译ARM目标。全文以分步骤的解决方案为主,涵盖从基础到深度的修复方法。

2025-07-10 09:52:37 336

原创 rust cargo 编译双架构的库

摘要:本文提供了解决Rust工具链缺少aarch64-apple-darwin目标平台的完整方案。主要步骤包括安装目标平台、验证安装和重新构建项目。文章还详细说明了常见问题排查方法,如安装失败处理、工具链匹配检查等,并解释了问题成因。针对M1/M2 Mac用户和需要跨平台支持的情况给出了具体建议。最后提醒用户如仍遇问题可提供环境信息以便进一步诊断。(149字)

2025-07-10 09:50:09 458

原创 在 Apple 生态中,`aarch64` 和 `arm64` 本质上是相同的架构

在 Apple 生态中,aarch64 和 arm64 都指代 64 位 ARM 架构(ARMv8-A),本质相同但使用场景不同。aarch64 是 ARM 官方名称,而 arm64 是 Apple/LLVM 的惯用命名。Rust 开发需使用 aarch64-apple-darwin 目标三元组,Xcode 则识别 arm64。虽然二进制完全兼容,但在跨平台构建、条件编译等场景需注意术语差异:Rust 条件编译用 #[cfg(target_arch = "aarch64")],Xcode

2025-07-10 09:22:04 290

原创 Rustup 安装加速:使用国内镜像源解决下载慢问题

Rustup 安装加速:使用国内镜像源解决下载慢问题当你在国内使用 rustup default stable 命令时,由于默认从国外服务器下载,速度可能会非常慢甚至失败。以下是几种有效的加速方法:

2025-07-10 09:17:27 562

原创 【无标题】

摘要:本文介绍了一个用于批量安装静态库的Python脚本,主要通过vcpkg包管理器实现。脚本自动检测vcpkg安装位置,为指定库添加静态构建后缀,检查已安装库避免重复安装,并提供详细的日志记录和错误处理。使用方法包括准备Python环境、修改配置库列表和运行脚本。脚本支持自定义平台架构、超时设置和日志路径,适用于需要静态链接依赖项的C++项目开发环境配置。注意事项包括静态库构建耗时较长、部分库可能不支持静态构建等。

2025-07-10 07:54:48 680

原创 「macOS 系统字体收集器 (C++17 实现)」

macOS字体收集工具摘要 这是一个专为macOS设计的C++17字体文件收集工具,主要功能包括: 核心功能: 智能扫描系统字体目录和用户指定路径 支持.ttf/.otf/.ttc等常见字体格式 自动处理权限限制和文件冲突 提供详细的操作日志 技术实现: 基于C++17标准,使用<filesystem>库高效遍历目录 采用多线程安全设计 实现双重访问策略确保最大兼容性 典型应用: 设计师字体收集整理 开发者构建字体管理工具 系统字体备份维护 扩展性: 可扩展GUI界面 支持添加网络下载功能 可集

2025-07-09 17:48:44 371

原创 字体 Unicode 区块字符展示 PDF 生成器

Unicode 字体字符集可视化工具是一个基于 C++17 开发的实用程序,用于分析和可视化字体文件中的 Unicode 字符。该工具通过 FreeType 库扫描 TTF/OTF 字体文件,提取支持的 Unicode 字符,并按 Unicode 15.0 标准区块分类。核心功能包括字体扫描、字符提取、区块分类和 PDF 生成(使用 Haru PDF 库)。工具可自动生成多页 PDF 文档,展示彩色标题、字符网格布局和统计信息,适用于字体设计验证、多语言支持检查等场景。项目采用模块化设计,包含 Unicod

2025-07-09 15:39:22 691 2

原创 podofo 编译找不到 iconv头文件

摘要:本文介绍了使用vcpkg安装PoDoFo库及其依赖项的方法,包括基本安装命令、指定目标平台、CMake集成等步骤。针对编译时找不到iconv头文件的问题,提供了解决方案:在CMake中添加vcpkg路径变量,并将iconv头文件从vcpkg目录复制到afdko/include目录。文章还包含相关命令行示例和截图说明,帮助用户顺利完成PoDoFo库的配置和使用。

2025-07-09 11:32:23 229

原创 jpeg2k jpeg2000 jp2图像的编码和解码封装

摘要 PDFCoreJPEG2000Manager 类封装了高性能 JPEG2000 图像编解码功能,支持 J2K/JP2/JPX 格式的解析与生成。核心特性包括: 解码:输出 RGB/RGBA 格式,可选元数据快速提取(快 3-5 倍) 编码:质量参数可调(1-100),支持三种标准格式 优化设计:RAII 资源管理、异常安全机制、类型安全接口 兼容性:保留旧版 C 接口,同时提供现代 C++ API 典型应用场景包含图像元数据获取、高质量转码等,适用于 PDF 处理等专业领域。注意限制包括不支持渐进式解

2025-07-09 10:56:28 777

原创 PNG图像压缩优化工具

本文介绍了一个基于libimagequant和libpng的高效PNG图像压缩优化工具。该系统提供三种级别的压缩算法:基础压缩(标准量化处理)、优化压缩(增强量化参数)和极限压缩(激进颜色减少),分别适用于常规需求、高压缩率场景和极端文件大小敏感环境。工具采用现代C++17实现,具备RAII资源管理、多阶段压缩管道和模块化设计等技术特点,支持透明度保留、颜色相似度合并等特性。性能测试显示,极限压缩模式能比基础压缩提升20-40%的压缩率。该工具适用于网页优化、移动应用资源处理等场景,并提供详细的压缩统计信息

2025-07-04 20:40:06 241

原创 基于libimagequant和libpng的C++ PNG压缩程序​

本文介绍了一个使用C++和libpng/libimagequant库处理PNG图像的内存读写实现。代码展示了如何通过自定义删除器管理资源生命周期,使用现代C++特性(如unique_ptr)封装libimagequant对象,并实现内存中的PNG解码和编码。关键功能包括:验证PNG签名、转换图像格式为RGBA8、处理不同位深度和颜色类型,以及通过回调函数实现内存中的读写操作。该实现还提供了安全的错误处理机制,确保资源正确释放,适用于需要高效处理PNG图像而不依赖文件系统的应用场景。

2025-07-04 18:04:33 265

原创 封装一个png的编码解码操作

像素数据与编码图像在图像处理中有着本质区别:像素数据是未经压缩的原始点阵数据(如RGBA格式的连续内存块),可直接用于图像处理操作;而编码图像是经过压缩的二进制数据(如PNG/JPEG格式),包含文件头、元数据等信息,需解码才能使用。两者的转换过程为:编码图像→(解码)→像素数据→(处理)→新像素数据→(编码)→新编码图像。关键差异体现在格式、大小、可处理性、元数据等方面,优化图像处理流程时应避免不必要的编解码开销。 (注:摘要已控制在150字以内,完整保留了原文的核心概念与关键区别,同时省略了代码示例等实

2025-07-04 14:42:44 1131

原创 三五法则的类的设计

C++资源管理法则总结:三法则(C++98)要求同时实现析构函数、拷贝构造函数和拷贝赋值运算符来正确管理资源;五法则(C++11)在此基础上增加了移动构造函数和移动赋值运算符,提升性能;零法则推荐优先使用智能指针和标准库容器自动管理资源,避免手动实现。实践建议:优先采用零法则,必要时遵循五法则。

2025-07-04 11:16:42 247

原创 对libpng的 简单封装,支持分离 和 合并 smask和像素数据,支持对图像进行插值算法进行减小图像大小,支持内存导出和导入png图像

摘要:该代码实现了一个PNG图像处理类PngManager,支持PNG文件的读写操作。主要功能包括:1) 读取PNG文件并解析为像素数据;2) 将像素数据写入PNG文件;3) 分离和合并RGB通道与Alpha通道(smask)。类封装了libpng库,提供了异常处理和内存管理,支持多种像素格式(灰度、RGB、RGBA等)。核心功能通过分离和合并通道实现图像透明度的灵活处理。

2025-07-03 11:22:21 510

原创 png 图像压缩方式 最近邻、双线性、双三次 算法

本文介绍了三种图像插值缩放方法:最近邻插值(速度最快但质量低)、双线性插值(平衡速度与质量)和双三次插值(质量最高但速度最慢)。使用示例展示了如何调用不同插值方法,并分析了各方法的性能特点:最近邻插值适合快速处理但会产生锯齿,双线性插值适用于大多数场景,双三次插值则适合高质量需求。文章还提供了注意事项,包括处理大图像时的性能考虑和边界处理机制。代码实现展示了三种插值算法的具体逻辑,包含边界检查、权重计算等核心功能,支持RGBA通道处理。用户可根据实际需求选择合适的方法,双线性插值被推荐为通用选择。

2025-07-03 10:23:55 456

原创 vcpkg 批量下载库

这是一个Python脚本,用于批量安装数学和多媒体相关的C++库(vcpkg包管理器)。主要功能包括: 自动检测vcpkg安装路径 检查库是否已安装 批量安装16个指定库(mathc/matplotplusplus/mbedtls等) 详细的安装日志记录 错误处理和状态报告 脚本会创建vcpkg_install.log日志文件,记录安装过程和时间戳。每个库安装前会检查是否已存在,安装失败会立即终止并提示错误。该脚本适用于需要自动化部署多个vcpkg库的开发环境。

2025-07-02 22:45:15 232

原创 libimagequant + libpng 实现对png的压缩代码

libimagequant + libpng 实现对png的压缩代码

2025-07-02 15:36:25 205

原创 std::any_of 函数介绍与用法

std::any_of是C++标准库中的算法函数,用于检查给定范围内是否至少有一个元素满足指定条件。该函数接受迭代器范围和一个谓词函数作为参数,当范围内存在使谓词返回true的元素时返回true,否则返回false。示例展示了对数字、字符串等容器检查特定条件的用法。该算法在第一个满足条件元素处即返回(时间复杂度O(1)-O(n)),比手动循环更简洁高效。从C++20开始还提供范围版本std::ranges::any_of。

2025-06-24 11:17:28 179

原创 libharu 按区块写入字符,并限制区块的字符个数

本文介绍了一个用于生成Unicode字符集的PDF文档的C++程序。程序使用Haru PDF库和FreeType库,定义了每页40字符×120行的排版格式,以及字符宽度(13px)、行高(20px)等参数。文中详细列出了65个Unicode区块的编码范围和名称,从Basic Latin(0x0000-0x007F)到Cyrillic Extended(0x2DE0-0x2DFF),覆盖了拉丁文、希腊文、西里尔字母、中文、日文等多种文字系统。该程序可用于创建全面的Unicode字符参考文档。

2025-06-23 14:30:09 109

原创 libharu开源代码进行写入文本字符

摘要:本文介绍了使用libharu开源库生成PDF文档的方法,重点实现了字体字符提取与文本写入功能。代码包含两个核心类:FontUtils利用FreeType获取字体unicode字符集并转换为UTF-8格式;PDFDocument类通过libharu创建PDF文件,设置字体参数(支持TTF/OTF/TTC格式),并按固定行距(20pt)、字号(13pt)和页边距自动分页写入文本。程序每页可容纳40字符×120行,处理UTF-8多字节字符时自动计算字符长度,确保正确排版输出字体所有字符到PDF文档。

2025-06-23 11:58:44 122

MSVC C++ STL 源码解析系列.md

MSVC C++ STL 源码解析系列.md

2023-01-10

vcpkg 文档 vcpkg是一款免费的C/C++包管理器,用于获取和管理库 从1500多个开源库中进行选择,只需一步即可下载和

vcpkg是一款免费的C/C++包管理器,用于获取和管理库。从1500多个开源库中进行选择,只需一步即可下载和构建,或者添加您自己的私有库以简化构建过程。 由Microsoft C+团队和开源贡献者维护。 为什么选择vcpkg? ·有超过2200个开 便于使用普遍的只需一步即可下载并构建常用库。无需担心上游依赖项或版本冲突。使用vcpkg可与您首选的操作系统、构建系统、目标架构、IDE、编辑器和特命令行操作或在可与您的存储库共存的清单中声明依赖项。获得开发团续集成流程配合使用。库是从源代码构建的,并且可以进行配置。 队、文档和活跃社区的支持。可靠的为了所有人保持本地开发人员和C工/CD工作流程之间的一致性。保留您首选的库版无论您是小型开源项目的单人团队,还是具有复杂构建和安全需求的大型本。将您的依赖生态系统与团队的其他成员同步。 企业,都可以利用最新的vcpkg功能来满足您的工作流程。缓存二进制文件以加快使用速度,避免钻石依赖解析问题,为所有开发人员、C工机器和容器重现相同的构建。自带库或使用流行的公共库。利用现有的Visual Studio和Visual Studio Code集成。

2024-07-20

SELinux:为任何Linux环境带来世界级的安全性! SELinux为Linux/UNIX集成商、管理员和开发人员提供了最

SELinux:为任何Linux环境带来世界级的安全性! SELinux为Linux/UNIX集成商、管理员和开发人员提供了最先进的平台,用于构建和维护高度安全的解决方案。既然SELinux已经包含在Linux 2.6内核中,并且默认情况下在Fedora Core、Red Hat Enterprise Linux和其他主要发行版中提供,那么利用它的好处比以往任何时候都要容易。 SELinux by Example是在生产环境中使用SELinux的第一个完整的实践指南。由三位领先的SELinux研究人员和开发人员撰写,它阐明了使用SELinux的各个方面,从其架构和安全对象模型到其策略语言。这本书彻底解释了SELinux示例策略-包括强大的新参考策略-展示了如何快速地使它们适应您独特的环境。它还包含一个全面的SELinux策略语言参考,并涵盖了Fedora Core 5和即将推出的Red Hat Enterprise Linux版本5中令人兴奋的新功能。 ·彻底理解SELinux的访问控制和安全机制·使用SELinux从头开始构建安全系统·获得对内核资源的细粒度控制·为类型强制、角

2024-01-16

SELinux by Example

1.内核策略语言部分旨在作为内核策略语言语句和规则的参考,并附有来自参考策略源的支持示例。此外,政策 DB 第 32 版的所有语言更新都应包含在内。如需更详细的策略语言解释,推荐阅读《SELinux by Example》一书。 《SELinux by Example》是一本专为理解和实践Security-Enhanced Linux(SELinux)安全模型而编写的指南性书籍。SELinux是Linux内核中的一个强制访问控制(MAC)系统,用于增强操作系统的安全性。 这本书通常会深入浅出地介绍SELinux的基本概念、架构以及如何配置和管理SELinux策略。书中通过实例和实际应用场景来帮助读者掌握SELinux的工作原理,内容可能包括: 1. **SELinux基础知识**:介绍SELinux的历史背景、目标、基本术语及工作模式(如`enforcing`、`permissive`和`disabled`)。 2. **策略构建与管理**:详细阐述如何创建、安装、更新和调试SELinux策略模块,使用工具如`semodule`、`checkpolicy`、`audit2all

2024-01-16

SELinux Notebook 是一本关于 SELinux 的开源书籍,最初由 Richard Haines创建并捐赠给 SE

SELinux Notebook 是一本关于 SELinux 的开源书籍,最初由 Richard Haines创建并捐赠给 SELinux 社区。该笔记本的目标是成为有关 SELinux 的最新、最全面的书籍,涵盖 Linux 内核组件、用户空间库和工具、策略工具链以及策略本身。 SELinux Notebook 是免费提供的,欢迎并鼓励社区做出贡献! 为 SELinux Notebook 做出贡献 直接在 GitHub 上查看笔记本 SELinux Notebook 有多种不同的格式,包括可以直接在 GitHub 上查看的在线格式,一次查看一个部分,从以下链接开始: SELinux 笔记本 离线查看笔记本 虽然 SELinux Notebook 是一本不断更新的活书,但我们偶尔也会发布具有各种格式的预构建版本的新版本,这些版本可以下载和离线阅读。我们的发布页面包含有关每个版本以及预构建笔记本的更多信息: https://github.com/SELinuxProject/selinux-notebook/releases 构建您自己的 SELinux 笔记本 BUILD.md

2024-01-15

第四章套接字通信博客的有图案的版本

博客上传本地图片太麻烦了,直接整了个pdf,大家结合博客一起看吧

2023-11-01

python Django web 实训项目的实验报告

python Django web 实训项目的实验报告 类似于客户管理系统,实现对管理员账户 部门账户 用户账户 靓号账户 任务发布 的增删查改,实现导入导出excel数据,生成pdf, 上传图片媒体资源。用户登录期间,随机图片验证码验证,登录账号的Cookie,Session保存。在增删删改期间,实现了 Ajax 页面无刷新上传数据。 在浏览数据信息方面,实现了模块级别的分页查询,实现了 e-chart 的数据可视化。在存储数据方面实现了md5 加密存储数据。 静态文件存放在 pms/app1/static Html文件存放在 pms/app1/template 验证码模块 md5加密模块 分页模块 bootstrap模块 form 模块在 pms/app1/utils Models 文件存放在 pms/app1/ Form上传的图片文件 存放在 pms/app1/city ModelForm 上传的图片 存放在 pms/app1/media Xxx.py 文件存放在 pms/app1/views Django 优点 1. 高度集成化:Django包含了很多常用功能,如自动化OR

2023-06-16

python Django web 联通用户管理系统实训代码

类似于客户管理系统,实现对管理员账户 部门账户 用户账户 靓号账户 任务发布 的增删查改,实现导入导出excel数据,生成pdf, 上传图片媒体资源。用户登录期间,随机图片验证码验证,登录账号的Cookie,Session保存。在增删删改期间,实现了 Ajax 页面无刷新上传数据。 在浏览数据信息方面,实现了模块级别的分页查询,实现了 e-chart 的数据可视化。在存储数据方面实现了md5 加密存储数据。Django 优点 1. 高度集成化:Django包含了很多常用功能,如自动化ORM系统、Form系统、Cache系统、Routing、Middleware、Template系统等,这样就能够很方便的使用这些功能,不需要自己来实现这些底层的功能。 2. 自动化Admin管理站点:Django自带一个基于Web的Admin管理站点,无需自行开发,可快速完成对模型的管理。 3. 强调面向对象编程思想:Django强调对模型、视图、控制器的封装,让开发人员更关注业务开发本身而不是技术层面,使代码结构更清晰。 4. 安全性较高:Django带有一些内置安全性功能,如防止跨站脚本攻击、C

2023-06-16

《C++17 完全指南》

本书为《C++17 the complete guide》(第一版) by Nicolai M. Josuttis的个人中文翻译版, 仅供学习和交流使用 C++17是现代 C++编程中的下一个版本,最新版本的gcc、clang和 Visual C++ 都至少已经部分支持它。尽管 迁移到 C++17 并不像迁移到 C++11一样是一个巨大的变化,但 C++17也包含了非常多很小但却很有价值的语言 和库特性。它们再一次改变了我们使用 C++编程的方式,无论是对应用程序员还是提供基础库的程序员来说都 是如此。

2023-01-21

C# Asp MVC 五层 .net 学生管理系统main.tar

这套源码 适合毕业设计和课程设计,因为有足够的注释 ,所以理解简单。采用五层架构 ,符合高内聚,低耦合的设计规范。课程设计书里有 软件测试。 一.导入数据库 数据库文件一般在Data、DB或者App_Data文件夹内 有两种方法导入数据库,任选其一即可: 1.用sqlserver打开XXX.sql脚本,然后执行脚本,即可自动创建数据库。 2 用sqlserver附件mdf文件(此方法有版本限制,某些低版本sqlserver可能出现无法附件的情况)(推荐此方法) 二.运行项目 1.修改链接字符串 链接字符串在web.config文件内,一般使用默认配置即可无需修改, 修改也很简单,将你的数据库服务器名复制进来,替换掉链接字符串里的服务器名即可(就是这个点号)。操作请看图:。 2 用VS打开解决方案文件(即.sln文件),如果没有解决方案文件,就用VS打开网站,运行即可。如果运行起来后,没有自动显示页面,则需设置默认启动项,右键某个你想设置的.aspx文件,在弹出的界面中点击“设为启动项”即可,然后重新点击运行。

2022-09-13

this指针的笔记呀呀呀呀

this指针的笔记呀呀呀呀

2022-07-21

网二维数组的动态创建和释放.pdf 网负号重载(1).pdf 网负号重载pdf 赋值号“==“重载(1).pdf 赋值号"==

网二维数组的动态创建和释放.pdf 网负号重载(1).pdf 网负号重载pdf 赋值号“==“重载(1).pdf 赋值号"== “重载.pdf 构造函数可以调用虚函数吗, 析构函数可... 后置加加(1).pdf 后置加加.pdf 网将模板声明为友元.pdf @静态数据成员(1).pdf 静态数据成员.pdf 拷贝构造函数.pdf 类的继承.pdf 类的组合.pdf 模板.pdf 模板的特化(具体化) .pdf 前置加加重载(1).pdf 前置加加重载pdf 國浅拷贝与深拷贝.pdf 输入输出函数重载(1).pdf 输入输出函数重载pdf 画委托构造函数.pdf 析构函数.pdf 虛表.pdf 网虛函数和多态.pdf 网虚析构函数.pdf 网友元函数(1).pdf 國友元函数.pdf 运算符重载(1).pdf 运算符重载pdf 指针函数和函数指针.pdf 网重载赋值号的问题?为什么不能自赋值1...

2022-07-21

git reset 的三个参数.pdf

1.--soft: 仅仅移动本地库 原先是统一战线的,git reset --soft 版本号 如果是后退了,相当于 工作区、暂存区 前进了 如果是前进了,相当于 工作区、暂存区 后退了 这个时候 git status 会根... 2.--mixed:本地库和暂存区否会变 git reset --mixed 版本号 如果是前进 相当于工作区自己后退了 如果是后退,相当于工作区前进了 此时git status,也会相应的发生变化,比如 变红色、变绿色等

2022-06-13

C#实现的学生管理系统,期末实训报告

含有sql脚本,和期末实训报告。目 录 第一章 学生信息管理系统概述 1.1 系统的主要功能 1.2 设计方法概述 1.3 学生信息管理系统的现状分析 1.3.1 学生信息管理系统应用的现状 1.3.2 管理系统开发的目的 第二章 系统开发平台 2.1 数据库系统的选择 2.2 系统开发工具的选择 第三章 系统框架设计 3.1 系统开发梗概 3.2 系统开发的步骤 3.3 系统的逻辑体系结构 第四章 系统概要和数据库设计 4.1 系统功能模块图 4.2 功能的说明 5.1 数据库及表的设计 5.2 数据库中的数据库关系图 5.3 数据库中存储过程的设计 5.3.1 存储过程的含义 5.3.2 存储过程的应用 第五章 系统详细设计及实现 5.4 系统模块设计 5.4.1 主窗口的设计 5.4.2 查询 5.4.3 密码修改 5.4.4选修课选课 第六章 开发系统遇到的问题和获得的经验 6.1 系统开发过程中遇到的问题 6.1.1 数据库连接 6.1.2 数据库中的表设计 6.1.3用户权限问题 6.2 从系统开发中获得

2022-05-15

QT学生管理系统的数据库文件(SQLLite)

和学生管理系统配套使用

2022-04-28

qt学生信息管理系统(含有数据库源码)

qt学生信息管理系统(含有数据库源码)

2022-04-28

makefile 文件编写

makefile 文件编写

2022-04-05

群主-SQL.pdf

群主-SQL.pdf

2022-03-14

Linux教程.zip

Linux教程.zip

2022-03-20

mysql 基础 进阶 运维

我自己做了个学习笔记,放在网上,大家也可以参考参考,不算特别详细但是老师讲到的知识点都记录下来了,欢迎大家观看

2022-03-20

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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