自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(241)
  • 资源 (63)
  • 收藏
  • 关注

翻译 本周小贴士#227:小心空容器和无符号算术

正如风格指南所说,在C++中对无符号类型进行算术运算时要小心。记住,容器.size()产生一个无符号类型。偏好可以尽可能在局部验证正确性的代码。尽量使代码直接对应于底层意图。

2024-04-18 18:13:22 4

原创 Visual Studio调试C/C++指南

前言Visual Studio(VS)是微软开发的一款集成开发环境(IDE)软件,支持C/C++、C#、VB、Python等开发语言,开发桌面、Web等应用程序。VS功能极其强大,使用极其便利,用户数量最多,被誉为"宇宙第一IDE"。熟悉地掌握基于VS的C/C++调试技术,可以大幅提升调试性能。随着VS版本的更新,其功能越来越强大,本文的内容是基于VS2019进行验证测试的,之前版本VS可能有少量特性不支持。基础。

2024-04-18 13:24:13 290

原创 人工智能——大语言模型

一千行代码实现一个完整的可训练和推理的60亿参数的大语言模型,去魅人工智能,去魅大语言模型。本文重在介绍机器学习和大语言模型的基本原理。在科学研究上,机器学习和大语言模型的每一个环节都可以优化研究。如何提升训练的效率,降低训练过程中的过拟合是大语言模型的关键,Transformer的出现为大语言模型的可行性提供了技术支持,OpenAI的chatgpt的出现,证明了加大模型参数可以让模型的能力出现质的提升。大语言模型未来将会继承发展,会让人工智能走进世界每一个角落。几百行代码实现大语言模型。

2024-04-09 19:01:01 1105

原创 人工智能——深度学习

深度学习是一种基于人工神经网络的机器学习方法,其核心思想是通过多层次的神经网络来模拟人脑的神经元之间的连接。深度学习的特点是可以通过大规模的数据来训练模型,并且可以自动学习到数据的特征表示。上图就是一个神经网络的基本结构图,X1到Xn是输入,O1到Oj是输出,圆圈是神经元(也称感知机),连线带权重参与计算生成下一个神经元。隐层在实际的神经网络中可能会多层,并且都是全连接,所以计算量巨大,所以需要AI CPU、AI GPT等。

2024-04-09 18:58:18 1302 1

原创 人工智能——机器学习概述

上面的列举也不全,生物的结构蛋白、化学的合成材料,早期的这些都是靠烧钱不停地实验来进行。我们可以看到这个函数是关于a和b的一个三维曲面,这里我们可以分别对a和b求偏导,再设置偏导为0即可以得出两个a和b的方程,然后即可求出最小误差平方和对应的a和b,即得到这线性拟合方程的完整表达式。人工智能(Artificial Intelligence,AI),是新一轮科技革命和产业变革的重要驱动力量, [26]是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。

2024-04-09 18:56:08 891

翻译 本周小贴士#224:避免使用vector.at()

在索引容器时,请注意我们处于哪种情况:索引是否是"按构造确定的",还是代码需要检测和处理无效的索引?在这两种情况下,我们都可以比使用基于异常的std::vector::at() API更好。类似的思考也适用于其他基于异常的API,如std::optional::value()和absl::StatusOr::value()(参见Tip#181)。对于非并发的C++代码中的错误处理,请优先进行"查看后跳转" - 然后,在检查了一切都正常之后,避免使用包含自身检查的API。

2024-03-28 18:10:32 24

原创 嵌入式开发——基础电路知识

驱动能力、负载能力、逻辑电平、三态输出、推挽输出、开漏输出、上拉电阻、下拉电阻、高通波滤、低通波滤、电源去耦电路、阻抗匹配、差分信号、MOS管与继电器、RS232和RS485、译码器、UART/IIC/SPI、模拟信号和数字信号眼图、真实U盘电路讲解。

2024-03-27 16:09:57 1429

原创 嵌入式开发——基础元器件

差分线的好处是,如果传输的信号受干扰,那么两个差分线就同时受干扰,两个信号会同时变化,那么两个信号的幅值差就会近似不变的,利用幅值差来表示信号就可降低干扰。电流表是串联接入电路的,电流表的内阻很小,一般为几mΩ,这样电流表接入电路对电源的外部负载影响很小,所以测量的电流近似于真实值。Vdd,IC的设备电压,在NAND Flash中,与Vccq等同,用于数据传输存储,为了降低功耗,其电压从早期的5V到后来的3.3V, 1.8V甚至1.2V。Vcc,IC的工作电压,主要用于控制IC内部的各种逻辑。

2024-03-27 15:45:36 899

原创 NVMe开发——NAND Flash的基本原理

当栅极(Gate)和P型衬底接通电源时,因为电场的缘故,P型半导体中的电子都往氧化绝缘层靠近,当绝缘层附近的电子足够多时,两个N型半导体之间的电子通道(N沟道)就形成了,两个N型半导体和中间的电子通道相当于一整个N型半导体。读0和读1会有两个阈值电压,先在栅极施加读0的阈值电压,检测是否导通,如果导通,输出1,结束。擦除之后读,因为浮栅层的电子全部释放回了P型半导体中,这时在控制栅加10V电压,P型半导体中的电子会聚集到N型半导体之间形成电子通道,源极和漏极之间接上电源,会导通,此时表示读到‘1’。

2024-03-22 17:47:11 884

原创 C/C++代码性能优化——编程实践

主要针对嵌入式C/C++,性能优化编程技巧,参数传递、函数返回、循环展开、查表、位域、尾递归、位运算、0数组、分支预测、异步计算、事件驱动架构、AI。其他性能负优化的示例。

2024-03-22 17:43:28 988

原创 C/C++代码性能优化——数据结构和算法

数据结构,数组、链表、块状链表、栈、堆、队列、二叉树、红黑树、B树、B+树、跳表、索引、哈希表、图的应用场景和性能比较。 常用排序算法、查找的应用场景和性能比较,其他通用算法应用场景介绍。

2024-03-22 17:40:14 980

原创 C/C++代码性能优化——编译器和CPU

在现代软件开发中,性能优化至关重要,尤其是在资源受限的系统和处理大量数据的应用程序中。C/C++ 作为低级编程语言,提供了对底层硬件的直接访问,使其成为性能关键应用程序的理想选择。然而,编写高效的 C/C++ 代码是一项具有挑战性的任务,需要对语言特性、编译器优化、硬件架构、数据结构和算法有深入的理解。本文旨在为 C/C++ 程序员提供一个全面的指南,涵盖各种优化技术,以提高代码性能,重在指南引导,不讲细节。

2024-03-22 17:35:48 868

原创 NVMe开发——PCIe配置空间和地址空间

PCIe支持不同功能的设备,不同的设备其需要操作的内存大小也不同,为了更方便地实现这一种,BAR(Base Address Registers)产生了。为此,提出了一个新的增强配置访问机制,即将每个功能的配置空间映射到设备的256MB空间中,按4K对齐来分配访问。PCI的256字节信息不够PCIe使用,所以PCIe在此基础上将配置空间扩展到4K字节,如下图中列出了一些主要的扩展寄存器。Capabilities是一组描述PCIe设备功能相关的结构,它是一个链式的结构,一个指向下一个,直到最后。

2024-03-04 18:04:27 1244 1

原创 NVMe开发——PCIe复位

简介PCIe中有4种复位机制,早期的3种被称为传统复位(Conventional Reset)。传统复位中的前2种又称为基本复位(Fundamental Resets),分别为冷复位(Cold Reset),暖复位(Warm Reset)。第3种复位为热复位(Hot Reset)。第4种复位被称为功能级复位(Function Level Reset),出现在PCIe 2.0规范中。传统复位。

2024-03-01 19:39:01 1177

原创 NVMe开发——PCIe电源管理

PCIe电源管理详细描述了与PCI总线PM接口规范和高级配置和电源接口(ACPI)兼容的PCIe功耗管理。PCIe定义了对PCI-PM规范的扩展,主要关注链路电源和事件管理。还概述了OnNow计划、ACPI以及Windows操作系统的相关性。

2024-03-01 19:35:49 1256

原创 NVMe开发——PCIe基础

PCI(Peripheral Component Interconnect),外设组件互连。PCI是一种并口总线标准,对比其之前的其他总线,PCI因其速度快、支持即插即用,中断共享等特性,占领计算机总线标准近20年。随着CPU以及外设的速度要求越来越高,PCI总线愈发显得有心无力。PCI因为是并口,在高速信号传输中,因为信号质量问题,以及信号同步问题,并口解决这些问题的成本高,难以为继。在这个时候,PCI的替代者PCIe出现了。

2024-03-01 19:28:37 990

原创 NVMe开发——MTBF介绍

NVM存储器的失效率是如何评估的呢?阿伦尼乌斯公式如何得来的?半导体加速因子又是如何计算的?MTFS计算公式又是如何推导出来的?

2024-02-26 18:12:58 1027

原创 GCC工具链简介

想编译各种嵌入式裸机的,想编译Linux Kernel,又或者想编译u-boot的,或者想编译运行在KylinOS上,甚至想编译运行在Android上的C代码,该选择哪个gcc版本呢?MinGW和gcc什么关系?ARM下几种gcc有什么区别?RISC-V内核又该如何选择GCC工具链呢?gcc不同版本的头文件、动态库等兼容性如何呢?选择了正确的gcc版本,又是如何编译安装呢?下载arm gcc时,经常会遇到Linaro,那么Linaro与arm、gcc是什么关系呢?gdb-multiarch?

2024-02-26 17:49:55 1031

原创 QEMU开发入门

QEMU开发,对于分析Linux内核帮助非常多。目前电脑上的手机模拟器、还有各种虚拟机技术也基本都是基于qemu进行扩展开发的。文章得比较详细,并提供包括固件和qemu的完整测试代码:1. Windows、Linux下的编译、安装qemu。2. 基于qemu,用VSCode单步调试单片机系统的Cortex-m、RISC-V固件代码。3. 基于qemu,用VSCode单步调试Linux Kernel代码。4. 扩展qemu,给RISC-V添加了一个自定义的uart设备,并演示如何在固件中使用这个uart来输出

2024-02-23 18:55:33 1326

原创 适用于嵌入式单片机的压缩算法

不同的压缩算法,有不同的应用场景。1. 高压缩率,压缩速度慢,但是解压速度快的算法,适用于Bootloader。高压缩率,可以节省ROM空间,高解压速度对Boot速度影响小。因为是外部工具压缩,压缩速度不影响Bootloader的功能。适用于此场景的压缩算法有lzo、lz4hc。2. 追求压缩率,且算力和内存资源充足,并且压缩和解压均不错的算法,选择DEFLATE。3. 有一定的压缩率(50%),追求压缩和解压速度,且算法相对简单,优先LZ4,再选择LZ77,再先LZO.

2024-02-03 17:49:40 4308

原创 ext4文件系统解析

写文件操作时,除了更新Data区处,还会相应更新GDT、Inode Bitmap、Block Bitmap、目录区、Inode Table区。● 针对小于480MB的文件,GDT、目录区、Inode Bitmap,更新较少。Block Bitmap会不停记录使用了的Block,更新较多,Inode Table会不停记录已经使用了的Block数,也更新较多。● 针对超过480MB的文件,尤其是更大的文件,其会启用extent子节点表。

2024-02-01 17:33:40 1965

原创 NTFS文件系统解析

MFT表项记录着文件的相关属性,有常驻属性(比较小),有非常驻属性(数据较大,此属性只记录真实数据的索引)。Bitmap和LogFile一般都超过1K,都是记录在MFT的非常驻DATA属性中。MFT表项由MFT_HEADER+多个属性项构成。NTFS文件写操作过程中,最常修改的文件系统内容分别为:MFT、Bitmap、LogFile,其次是DBR区的一些其他元文件如MFTMirror和MFTMirror和MFTMirror和AttrDef等。

2024-02-01 16:51:01 992

原创 MSVC++远程调试

MSVC++的调试功能非常强大,可以下断点,单步调试,查看堆栈变量信息等。实际用于生产的电脑环境复杂,更容易发生Bug。生产电脑,由于各种原因有些可能无法安装MSVC用来现场调试。基于打印日志,查看日志的方式来分析,一些简单的问题可以解决,但是一些复杂的问题,尤其是语法问题,还是在线调试更方便。针对上述情形,跨电脑的远程调试就出现了,完美解决上述问题。远程调试,一台生产电脑,一台开发电脑,共同接入一个局域网。开发电脑远程连接生产电脑,然后就像调试本地程序一样调试运行于生产电脑上的程序。

2024-02-01 16:03:04 773

原创 C++20新语法

在C++20标准中,允许Lambda表达式使用 [=, this] 这样的语法进行捕获。这种语法称为“复合捕获”(compound capture),表示同时对this指针和所有父作用域的自动变量进行值捕获。具体来说,当我们使用 [=, this] 进行复合捕获时,Lambda表达式会自动捕获当前对象的this指针,并以值的方式复制到Lambda表达式的闭包中。与此同时,Lambda表达式还将自动捕获所有父作用域中的自动变量,并以值的方式复制到闭包中。

2024-01-31 19:10:37 1125

翻译 本周小贴士#218:用FTADLE设计扩展点

这篇翻译讲述了在C++中关于扩展点机制的设计问题以及引入FTADLE(Friend Template with ADL Extension)模式来解决这些问题。文章首先提到了一些常见的扩展点机制,如虚函数、成员函数检查和模板特化,并指出它们各自存在的问题和局限性。接下来,文章详细介绍了FTADLE模式的设计原理和优势。通过使用友元函数模板和ADL(Argument-Dependent Lookup)机制,FTADLE模式可以实现可扩展性、灵活性和低耦合度。它能够避免类层次结构的僵硬性和对用户的依赖,同时

2023-12-01 22:00:00 102

翻译 本周小贴士 #215:使用AbslStringify()将自定义类型转换为字符串

Abseil现在包含一个新的轻量级机制,AbslStringify(),允许用户将用户定义的类型格式化为字符串。使用AbslStringify()扩展的用户定义类型可以与absl::StrFormat、absl::StrCat和absl::Substitute无缝配合使用。与大多数类型扩展一样,您应该拥有要扩展的类型。

2023-11-16 19:11:45 177

原创 Python编程——模块、包和__init__.py

Python中的一个文件即为一个模块(Module),一个模块引用另外一个模块的变量、函数或类时,使用import来导入。模块名即文件名。如fibo.py那么在main.py文件中如下使用fibo模块。或者直接导出指定函数,此方法可能导致同名函数被覆盖导致代码异常。

2023-11-10 18:50:32 619

翻译 本周小贴士#198:标签类型

作为TotW#198最初发表于2021年8月12日由Alex Konradi创作Foo既不可移动也不可复制,但它是可构造的,例如Foo f(1, 2);。这很棒,但是如果std::optional被声明为const,那么我们无法调用emplace()怎么办?等等,std::in_place是什么意思?如果我们查看std::optional的文档,可以看到其中一个重载函数接受std::in_place_t作为第一个参数,以及其他参数的列表。

2023-10-05 17:34:24 96

原创 pytest简明教程

pytest是一款基于Python的测试框架。与Python自带的unittest相比,pytes语法更加简洁,断言更加强大,并且在自动测试以及插件生态上比unittest都要更加强大。

2023-09-22 19:35:02 599

翻译 本周小贴士#188:注意智能指针函数参数

作为TotW#188最初发表于2020年12月10日作者:Krzysztof Kosiński这段代码有什么问题?函数 CanYouPetTheDog 不会影响其 dog 参数的所有权,然而它的函数签名要求将其存储在 std::shared_ptr 中。这样做创建了对特定所有权模型的不必要依赖,尽管函数内部并不需要。这种依赖性阻止调用者使用其他模型,如 std::unique_ptr 或在栈上构造对象。

2023-09-06 19:15:00 104

原创 Windows下打包工具包为一个exe

很多时候,一个工具包有除了一个exe还有不少配置文件及dll库。如果只想给客户发布一个exe,要怎么办呢?使用静态编译,不使用dll,将资源编译到exe中,使用时再释放出来。这种方法比较麻烦,而且需要将资源释放到临时目录,针对一些有安全性的工具,安全性也不够。有没有简单又安全的方法呢?

2023-08-19 10:30:00 693

原创 命令行参数设计

众多通用的小功能,制作为一个小工具,然后通过命令行来进行交互,使用非常的简便。本规范是为了统一命令行参数的设计,使得大家在制作或使用命令行工具时,能够更加有共享,进行会更加方便。

2023-08-16 14:58:23 144

翻译 本周小贴士#187:std::unique_ptr 必须被移动

std::unique_ptr是一个指针,当std::unique_ptr本身被销毁时,它会自动销毁指向的任何对象。它存在的目的是作为类型系统的一部分来传递所有权(销毁资源的责任),并且是C++11中更有价值的新增功能之一。然而,std::unique_ptr经常被过度使用。一个好的检验方法是:如果它从未被std::unique_ptr移动到另一个std::unique_ptr,那么它可能不应该是std::unique_ptr。

2023-07-28 12:11:45 74

翻译 本周小贴士 #186:将函数放在未命名的命名空间中

文件局部函数简化了依赖关系并改善了局部性。非成员函数增加了封装性,简化了类定义,并使依赖关系更加明确。编写函数时,请考虑将其作为文件局部非成员函数,例如将其放在.cc文件的未命名命名空间中。

2023-07-15 17:56:18 60

翻译 本周小贴士#182:初始化你的整形变量

作为TotW#182最初发表于2020年7月23日“在做决定的瞬间,你能做的最好的事情是正确的事情,接下来最好的事情是错误的事情,而你能做的最糟糕的事情就是什么都不做。” ——西奥多·罗斯福C++很容易让变量未初始化,这非常危险,因为几乎对任何未初始化对象的访问都会导致未定义行为。默认初始化是其中一种形式,当变量没有指定初始值时发生,默认初始化并不总是初始化。

2023-06-29 15:46:39 78

原创 C++17新语法及标准库

在C++ 17中,引入了一个新的auto规则来改进直接列表初始化(direct-list-initialization)的行为。在此前,使用auto声明变量并对其进行直接列表初始化时,结果类型通常为std::initializer_list。这意味着该变量只能表示一个具有可复制语义的对象集合,并且很难用于处理其他类型的值。在上面的示例中,我们使用了新的auto规则来声明变量并对其进行直接列表初始化。在第一个示例中,由于列表只包含单个元素,因此结果类型为int。

2023-06-12 18:06:59 5026

翻译 本周小贴士#181:访问 StatusOr<T> 的值

作为TotW#181最初发表于2020年7月9日由Michael Sheely创作当需要访问 absl::StatusOr 对象中的值时,我们应该努力使该访问安全、清晰和高效。注意:本提示试图强调提供典型用例的指导,但并非详尽无遗。如果遇到边缘情况,请考虑本文中的建议和推理,并行使判断力。

2023-06-06 20:38:57 151

翻译 本周小贴士#180:避免悬空引用

与许多编程语言不同,C++缺乏必要的安全检查,以避免引用无效内存(即“悬空引用”)。您可以轻松地对已删除的对象指针进行解引用,或者跟随一个超出作用域的对象引用。即使是类类型也存在这种风险。重要的是,我们正在建立命名约定,围绕名称“view”和“span”表示“这是具有引用语义并可能悬空的对象”。像所有具有引用语义的类型一样,这些类型从不拥有它们指向的基础数据。每当您看到存储这些类型之一的实例时,请注意。

2023-06-01 09:46:02 234

翻译 本周小贴士#177:可赋值性与数据成员类型

作为TotW#177最初发表于2020年4月6日由Titus Winters创作在实现类型时,应先确定类型设计。将API优先于实现细节。这种情况的一个常见例子是类型可赋值性和数据成员的限定符之间的权衡。

2023-05-25 22:06:38 57

翻译 本周小贴士#176:优先返回值而不是输出参数

作为TotW#175最初发表于2020年3月12日由Etienne Dechamps创作。

2023-05-22 12:40:32 103

适用入嵌入式单片机的压缩算法

适用入嵌入式单片机的压缩算法

2024-02-03

NTFS解析工程C++代码

解析NTFS文件系统的C++代码

2024-02-01

ext4分析工具C++代码

解析ext4文件系统内容

2024-02-01

A Beginner's Guide to SSD Firmware

最新的SSD固件开发的书,A Beginner's Guide to SSD Firmware,全网唯一资源

2024-01-17

Windows版本lspci.exe和setpci.exe

Windows版本lspci.exe和setpci.exe,使用方法同ubuntu。

2024-01-16

Windows版的lspci/setpci源代码

包括Windows版的lspci/setpci两个工具的源代码

2024-01-16

JEDEC JESD22-A117E:2018 电可擦除可编程 ROM (EEPROM)

英文电子版JEDEC JESD22-A117E:2018 Electrically Erasable Programmable ROM (EEPROM) Program Erase Endurance and Data Retention Stress Test(电可擦除可编程 ROM (EEPROM) 程序擦除耐久性和数据保留压力测试)。标准规定了基于资格规范执行有效耐久性、保持力和交叉温度测试的程序要求。 JESD47 中规定了耐久性和保持性鉴定规范(针对循环计数、持续时间、温度和样本大小),或者可以使用 JESD94 中基于知识的方法制定。

2022-12-13

UNH-IOL-NVMe-MI-Conformance-Test-Suite-v15.0

UNH-IOL_NVMe-MI_Conformance_Test_Suite_v15.0

2022-12-05

UNH-IOL-NVMe-ZNS-Conformance-Test-Suite-v16.0-20211020

UNH-IOL实验性nvme测试套件

2022-12-05

UNH-IOL-NVMe-Conformance-Test-Suite-v14.0-Clean

UNH-IOL协议兼容性测试套件新版。

2022-12-05

基于MFC Dialog的MVC实践

基于MFC Dialog的MVC实践Demo,基本结构比较简单,但是都是基于接口编程的,具有扩展性,基于VS2022的代码工程。

2022-08-12

VC2010的detours示例

附件为VC2010的2个detours示例,有MFC的和非MFC下的示例。可以用来Hook API。

2022-06-22

SSS PTS V2.0.2中文翻译版

1. SSS PTS V2.0.2中文翻译版

2022-05-20

托管C++调用.NET中的Excel生成Chart

1. 托管C++调用.NET中的Excel生成Chart 2. VS2010编译。

2022-05-20

标准C++封装托管C++工程

1. 使用标准C++封装托管C++代码生成DLL供标准C++使用。 2. 有完整使用示例

2022-05-20

VS2010单元测试的coverage文件转换为xml文件源代码

1. VS2010的单元测试coverage文件无法通过命令行转换为xml文件。 2. 这里C#代码,读取coverage文件,然后转换为xml文件,非常简单。 converage2xlm的用法: Transform the coverage file to xml file. Coverage2xml coveragePath dllDir xmlPath coveragePath: xx.coverage file path. dllPath: the directory of unit test project's dll. xmlPath: the xml path for output. example: Coverage2xml e:\data.coverage e:\debug e:\xx.xml

2022-05-19

apt-get安装包f

1. 解决aptitude安装后导致apt-get失败。 2. 针对ubtuntu 18.4版本。 3. 解决apt-get安装失败。 4. 解压之后,直接运行sudo dpkg -i *.deb

2022-05-13

Lua5.4.3加密完整演示代码

1. lua加密源文件。 2. 修改opcode.

2022-05-09

lua扩展C++库代码

C++编译的lua扩展库,示例有Windows和Linux代码。

2022-05-09

amba官方文档集.zip

AMBA协议集合,包括axi/apb/ahb/atb/ace,都是arm的官方文档。

2022-01-13

keilMap.zip

最新的STM32 keil 编译后的map 文件内容辅助分析软件,筛选出占用最大flash 和 sram 的函数和文件,方便分析和优化程序结构

2021-12-31

NTGraph.zip

NTGraph控制VS2010版。

2021-12-23

Python代码规范.docx

Python代码编写规范

2021-12-22

华为C++语言通用编程规范.pdf

华为通用C++语言编程规范

2021-12-22

(微软一站式代码示例)编程规范.pdf

微软C++编程规范

2021-12-22

C++笔试合集.zip

C++笔试题合集,包括腾讯、网易、阿里巴巴、百度等。

2021-12-22

System Verilog.zip

System Verilog Reference Manual And Verilog Reference Manual。System Verilog和Verilog两份参考手册。

2021-12-21

protobuf-3.0.0-alpha-2.zip

Protobuf3.0,VS2010能支持的最新版本。内置一个map变量的序列化和反序列,并且有内存泄露测试,是一个完整示例。

2021-12-15

TestProperyGrid.zip

MFC PropertyGrid控件的重绘,重绘了一个单选按钮,可以在此基础上添加其他控件到PropertyGrid控件中。VS2010版可以编译。

2021-12-15

TestDlg.zip

Dialog启动工程转DLL工程。

2021-11-29

TestLCG.zip

自定义线性同余发生器代码,可以生成最大周期的线性同余序列,用于生成自定义的随机数。

2021-08-11

GoogleBreakpad.zip

Google Breakpad模块,VS2010编译成功,附带GoogleTest模块。

2021-07-15

TestMFC.zip

加载exe进内存中直接运行,也可以加载DLL。测试VS2010,MFC对话框程序。

2021-06-16

TinyCC的VS2010编译工程

TCC(TinyCC)9.27版,Windows下的VS2010版。可以将C代码当作脚本使用,调用方法示例如下tinycc -run ex1.c。

2021-04-28

TestMDI.zip

MFC 的MDI工程转换为DLL工程,VS2010代码。

2021-04-09

TestDlg.zip

将MFC Dialog工程转换为DLL工程,基于VS2010工程。

2021-04-09

缩略图示例C++代码

2种C++方法获取缩略图,测试可用,兼容性好。

2020-12-22

Linux下的CString

移动MFC中的CString至Linux下,Ubuntu 18.0.4下测试可以使用。Windows下不可以使用。

2020-11-23

TestBank.zip

Keil c51 的Bank CodingDemo,最简洁的Demo。并且提供Hex3862Bin.exe。

2020-08-28

基于 Visual studio 和虚拟机的驱动调试.pdf

本文是对VisualDDK官方文档的一个翻译,介绍了如何配置VisualDDK以及一步步讲解了如何用VisualDDK开发和调度Windows驱动。

2020-08-07

空空如也

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

TA关注的人

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