
C++高手修炼营
文章平均质量分 57
跟我一起成为Windows与 Linux平台下的C++编程高手!
优惠券已抵扣
余额抵扣
还需支付
¥9.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
程序员乐逍遥
15年C/C++跨平台开发资深程序员、想跟我学编程的可以观看我精心录制的视频课程!
展开
-
string 与 wstring 的字符编码
下面的 wchar_t unicode[256] = L"好人";下面的 const char* utf8String = u8"好人";下面的 char ansi[256] = "好人";原创 2025-02-09 00:08:57 · 146 阅读 · 0 评论 -
C++ 字符串编码转换
UTF8 的string 转 UTF16 的 wstring。// 获取 UTF-16 字符串所需的缓冲区大小。// 分配缓冲区并执行转换。原创 2025-02-08 22:15:44 · 130 阅读 · 0 评论 -
C++ 在2D与3D游戏的开发库
SDL是一个跨平台的软件开发库,它提供了对音频、键盘、鼠标、游戏手柄等硬件设施的低级访问接口。SDL最初由Sam Lantinga于1998年创建,目的是为了简化多媒体应用尤其是游戏的开发过程。自那时以来,SDL已经发展成为一个成熟的框架,被广泛应用于各种操作系统之上。SFML是一个面向对象的多媒体库,它提供了对图形、声音、网络等多媒体元素的支持。SFML的设计目标是让开发者能够轻松地创建2D游戏和其他多媒体应用程序,同时保持高性能。原创 2025-01-22 09:44:21 · 146 阅读 · 0 评论 -
MFC 使用 32位带Alpha通道的位图
32位带Alpha通道的位图指的是图像中的每一个像素都使用了32位来表示颜色信息,这种格式通常被称为RGBA(Red,Green,Blue,Alpha)。在计算机图形学中,RGB模型是使用最广泛的色彩模式,通过红(Red)、绿(Green)、蓝(Blue)三种基本颜色的不同强度组合来表示各种颜色。这种情况下,前景颜色与背景颜色会根据Alpha值进行混合,Alpha值越低,背景颜色的影响越大;先看我的原始24位图片,RGB三个颜色各占8位(256色),所以是24位。PS文件-》存储为。原创 2025-01-20 14:50:40 · 186 阅读 · 0 评论 -
SDL2基本的绘制流程与步骤
SDL2(Simple DirectMedia Layer 2)是一个跨平台的多媒体库,它为游戏开发和图形应用提供了一个简单的接口,允许程序直接访问音频、键盘、鼠标、硬件加速的渲染等功能。在 SDL2 中,屏幕绘制的流程通常涉及到窗口的创建、渲染目标的设置、图像的绘制、事件的处理等几个步骤。本文将详细阐述 SDL2 中的屏幕绘制流程,并为读者提供一个清晰的理解。原创 2025-01-17 14:35:19 · 437 阅读 · 0 评论 -
VS2022 Release调试的时候没有命中断点
如果你只有Release ,调试的时候没法命中,解决方法如下:原创 2025-01-17 14:21:05 · 206 阅读 · 0 评论 -
VS2022 中的 /MT /MTd /MD /MDd 选项
其实理解起来就是静态库和动态库的区别!静态链接(/MT和/MTd)简化了部署过程并减少了对环境的依赖,但可能导致较大的二进制文件和内存占用。动态链接(/MD和/MDd)则在部署时需要确保正确版本的运行时库DLL文件也被安装在目标系统上,但可以节省资源并便于库文件的更新和维护。原创 2024-12-24 14:35:08 · 523 阅读 · 0 评论 -
ubuntu 18.04.6 下SDL 1.2安装 命令
最后程序编译时,需要使用 -l 链接下面的库。原创 2024-12-12 13:20:38 · 141 阅读 · 0 评论 -
Qt Creator 里面设置MSVC 为 utf-8
在使用 Qt Creator 和 MSVC(Microsoft Visual C++)编译器进行开发时,我们可能会遇到中文乱码的问题。这通常是由于编码设置不正确导致的。这里的原理实际上是 为 MSVC 编译器添加和参数,确保源代码和执行文件都使用 UTF-8 编码可以使用 /utf-8选项将源字符集和执行字符集指定为使用 UTF-8 编码的字符集。它等效于在命令行上指定 /source-charset:utf-8 /execution-charset:utf-8。原创 2024-12-09 15:51:12 · 582 阅读 · 0 评论 -
Visual Studio 2022 项目配置常用选项
手动拷贝到exe目录下。原创 2024-12-04 14:44:57 · 383 阅读 · 0 评论 -
Windows 下 cocos2d-x-3.17.2 VS2017开发环境搭建
执行 命令, 交互的地方一直回车即可。自动帮我设置了一些环境变量。2.下载Python2。测试cocos命令和版本。原创 2024-10-12 16:45:17 · 288 阅读 · 0 评论 -
VS2017 编译 SQLite3 动态库
1.安装 VS2017 community edition2.打开VS2017命令行工具3.安装TCL 开发库,推荐 TCL 9.0使用vs2017编译tcl:先进入 tcl9.0.0\win 目录安装安装成功:设置环境变量:进入 VS2017命令行工具 ,进入sqlite3的源码目录会成功生成可能会遇到问题,找不到 gawk命令:我电脑上有一个,直接配置到环境变量即可可能会遇到问题, 编译时报常量错误 error C2065: “zBom”: 未声明的标识符。原创 2024-10-12 15:54:47 · 415 阅读 · 0 评论 -
c_cpp_properties.json文件的作用
IntelliSense 是 VS Code 中内置的一个有用工具,它提供各种代码编辑功能,可帮助您更快、更高效地编写代码。例如,代码完成、参数信息、语法突出显示、代码操作(灯泡)和成员列表都是使用 IntelliSense 生成的。IntelliSense 配置存储在文件中,该文件在您的工作区中自动创建。如何产生 c_cpp_properties.json文件?这里配置一下头文件,就可以自动提示了,以OpenCV为例子。其中的属性可以在界面上改,文件会自动同步。原创 2024-10-10 22:04:37 · 343 阅读 · 0 评论 -
PCL 1.8.1 + VTK 1.8.0 + QT5.14.2+ VS2017 环境搭建
【代码】PCL 1.8.1 + VTK 1.8.0 + QT5.14.2+ VS2017 环境搭建。原创 2024-10-06 16:14:43 · 519 阅读 · 0 评论 -
Qt 5.14.2 +VS2017+ VTK 8.0 + QVTKWidget 插件 运行环境
VS2017 编译,安装。原创 2024-10-06 15:43:35 · 287 阅读 · 0 评论 -
Windows上 minGW64 编译 libssh2库
安装之后,产生如下静态库,安装到MSYS2的 /usr/local 目录下了。编译器使用 Qt 6 自带的 minGW 11.2.0。使用CMake来编译libssh2。来编译 openssl库。里面的 minGW64。原创 2024-10-06 15:26:20 · 180 阅读 · 0 评论 -
Windows上 minGW64 编译 libssh2库
安装之后,产生如下静态库,安装到MSYS2的 /usr/local 目录下了。编译器使用 Qt 6 自带的 minGW 11.2.0。使用CMake来编译libssh2。来编译 openssl库。里面的 minGW64。原创 2024-09-21 21:33:40 · 258 阅读 · 0 评论 -
没有那个文件或目录 #include <bits/libc-header-start.h>
Ubuntu 18.04 编译需要编译32位系统。原创 2024-09-20 11:32:32 · 144 阅读 · 0 评论 -
warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存 为 Unicode 格式以防止数据丢失
使用VS20XX 报了上面这个错误,编码问题导致的!文件编码为gbk,GB312 或者 utf-8withbom源字符集是用于解释程序源文本的编码。原创 2024-09-12 15:27:27 · 2205 阅读 · 0 评论 -
wofstream写入文件没有反应的解决方案
使用宽字符字符串是处理中文字符的正确方式,因为它们可以表示任何 Unicode 字符。类在 C++ 中用于定义区域设置,它影响数字、货币、日期和时间的格式,以及字符的分类和比较。在处理中文字符时,设置正确的区域设置是必要的,以确保字符的正确解释和处理。这个名称是依赖于平台的,不同的系统可能有不同的命名规则。作为分隔符,但在 C++ 字符串中,反斜杠是转义字符的开始,因此需要使用双反斜杠。,这是一个表示简体中文的区域设置。类,并添加了对宽字符的支持。是 C++ 标准库中的一个类,用于处理宽字符文件的输出。原创 2024-09-10 19:55:37 · 272 阅读 · 0 评论 -
VSCode 搭配 Windows 下各种 C/C++ 编译器使用
Visual Studio Code(简称 VSCode)是一款由微软开发的免费、开源的代码编辑器,它支持多种编程语言,包括 C 和 C++。VSCode 提供了丰富的扩展和定制功能,使得开发者能够根据自己的需求进行个性化设置。在 Windows 环境下,搭配合适的 C/C++ 编译器,VSCode 能够成为一个强大的开发工具。本文将详细介绍如何在 Windows 系统上安装和配置 VSCode 以进行 C/C++ 开发。原创 2024-08-14 16:51:16 · 458 阅读 · 0 评论 -
C语言动态分配二维数组空间
方法二: 当成一维数组来分配。方法一: 指针的指针。原创 2024-07-31 19:58:04 · 537 阅读 · 0 评论 -
C++ STL中的std::remove_if 的用法详解
是C++ STL中头文件的一部分,它用于从容器中移除所有满足给定谓词(即判断条件)的元素。值得注意的是,并不会直接删除元素,而是将不满足条件的元素移到容器的前面,返回一个新的迭代器指向第一个应被删除的元素。因此,为了完全删除这些元素,我们需要配合容器的erase成员函数使用。假设我们有一个Student类,包含姓名、年龄和成绩等属性,我们的目标是从一个中移除所有成绩低于60分的学生。首先,定义Studentpublic:int score;// 用于输出学生信息int main()原创 2024-07-15 15:38:19 · 567 阅读 · 0 评论 -
使用 iconfont.ttf文件保存多个图标文件,并且像文字一样使用代码绘制出来
这里的多个图标其实是存储在 iconfont.ttf文件中。这个文件里面的图标对应的编码。原创 2024-07-04 21:49:22 · 336 阅读 · 0 评论 -
一种特殊的二叉树 哈夫曼树(Huffman Tree)
哈夫曼树(Huffman Tree)是一种特殊的二叉树,它在信息编码领域有着广泛的应用,特别是在数据压缩技术中。下面我将通过图文结合的方式,详细介绍哈夫曼树的概念、构建方法以及应用场景。哈夫曼树的概念哈夫曼树是一种特殊的二叉树,由David Huffman于1952年提出。它主要用于解决数据编码问题,通过给定字符的频率来构造一棵二叉树,使得树中所有叶子节点的权重之和最小。哈夫曼树的每个叶子节点代表一个字符,而其非叶子节点则用于连接子树。原创 2024-07-03 13:43:23 · 113 阅读 · 0 评论 -
表达式二叉树的应用
表达式二叉树,顾名思义,是一种用于表示算术或逻辑表达式的二叉树。在这样的树中,叶子节点通常代表操作数(数字或变量),而非叶子节点则代表运算符。这种结构使得表达式的求值和优化变得非常直观和高效。表达式二叉树不仅是一种优雅的数据结构,更是连接数学与计算机科学的桥梁。通过本文的介绍,相信你已经对表达式二叉树有了更深入的理解。无论是从理论角度还是实践应用,掌握表达式二叉树都将为你的编程之旅增添一份独特的魅力。在未来的学习和工作中,不妨尝试将这一数据结构应用于实际问题中,体验它带来的便利与效率吧!原创 2024-07-03 09:58:48 · 97 阅读 · 0 评论 -
交叉编译中的 --build、 --host和 --target
在交叉编译中比较常见的一些参数就是build、host和target了,正确的理解这三者的含义对于交叉编译是非常重要的,下面就此进行解释。表示针对 64 位 x86 架构(也称为 AMD64 或 x86_64)的个人电脑上的 GNU/Linux 系统。./configure --build=编译平台 --host=运行平台 --target=目标平台。:表示针对小端字节序的 MIPS 架构的 GNU/Linux 系统。:表示针对 PowerPC 架构的 GNU/Linux 系统。原创 2024-06-30 11:10:38 · 604 阅读 · 0 评论 -
在Ubuntu 18.04.6 LTS 交叉编译生成Windows 11下的gdb 8.1.1
最后在 build/gdb目录下找到你需要的gdb.exe。最后,放到windows 11 下试试效果。2. 下载 gdb 8.1.1源码。产生Makefile文件。1. 安装mingw。原创 2024-06-29 22:39:16 · 305 阅读 · 0 评论 -
高性能STL库 EASTL 、高性能JSON库
兄弟们,对STL要求性能高的可以试试这个EASTL库!原创 2024-06-24 22:41:20 · 161 阅读 · 0 评论 -
VS2022 使用C++访问 mariadb 数据库
【代码】VS2022 使用C++访问 mariadb 数据库。原创 2024-06-12 14:22:48 · 419 阅读 · 0 评论 -
VS2022使用C语言代码访问MariaDB数据库
第三步,配置VS2022。原创 2024-06-12 09:27:17 · 359 阅读 · 0 评论 -
MySQL Connector/C++ 和 MySQL Connector/ODBC 的区别
选择使用哪一个取决于你的具体需求,如果你正在使用C++并且希望获得更好的性能和C++友好的接口,MySQL Connector/C++可能是更好的选择。- MySQL Connector/C++ 提供了面向对象的编程接口,它是用C++编写的,提供了C++特有的类和对象来与MySQL数据库进行交互。- MySQL Connector/ODBC作为基于标准的产品,也有良好的社区支持,但由于它是跨语言的,可能在特定语言环境下的资源不如Connector/C++丰富。原创 2024-06-12 09:18:56 · 841 阅读 · 0 评论 -
软件架构x86 、 x86_64、 arm64、aarch64 、PowerPC架构、MIPS架构、RISC-V架构
RISC是一种执行较少类型计算机指令的微处理器,它能够以更快的速度执行操作,使计算机的结构更加简单合理地提高运行速度,相对于X86 CPU架构具有更加均衡的性能功耗比。,CISC指令集的每个小指令可以执行一些较低阶的硬件操作,指令数目多而且复杂,每条指令的长度并不相同。i386指的是Intel 386处理器的型号,它是Intel x86架构的一部分,而x86是一种广泛使用的处理器架构,用于PC和服务器等设备。(IA-64):由Intel和HP合作开发的处理器架构,用于高性能计算。原创 2024-06-08 16:41:43 · 852 阅读 · 0 评论 -
make 中 DESTDIR 和 --prefix 的区别
这两个示例分别展示了如何使用两种流行的构建系统( + 和 + )来编译和安装软件,并解释了 和 这两个选项的作用。这个命令运行 脚本,它是 生成的,用于检测系统环境并创建适当的 。这里: 指定了软件安装的基本目录。这意味着软件的可执行文件、库文件、头文件等将安装到 目录下及其子目录中。如果不指定 ,则默认安装到 。这个命令使用 工具来编译软件。 是一个选项,表示 可以同时运行8个作业(jobs),这样可以加快编译过程,利用多核处理器的优势。这个命令执行 目标,根据 将编译好的软件安装到原创 2024-06-05 21:51:51 · 474 阅读 · 0 评论 -
GNU Linux 下安装目录的规范
官方链接。原创 2024-06-05 21:27:27 · 194 阅读 · 0 评论 -
Windows Linux下查看静态库,动态库各种命令的总结
【代码】Windows Linux下查看静态库,动态库各种命令的总结。原创 2024-06-05 17:24:17 · 316 阅读 · 0 评论 -
检查用户是否在错误的目录中运行了CMake命令
但是有一些不熟悉CMake的依然会直接在当前目录配置,比如 CMake .那么我们如何在CMakeLists.txt 进行检测,避免这种行为呢?这样可以避免 生成的一些文件污染 代码目录。原创 2024-06-05 15:10:12 · 81 阅读 · 0 评论 -
VS2002 ~ VS2022平台工具集对应关系
MSC_VER。原创 2024-05-28 09:45:10 · 318 阅读 · 0 评论 -
Windows VS2022 C语言使用 sqlite3.dll 访问 SQLite数据库
下载 sqlite3.dll 库。这两个文件获取到了即可。原创 2024-05-25 17:56:35 · 479 阅读 · 0 评论 -
解决Windows终端PowerShell展示乱码的问题
标题:解决Windows终端PowerShell展示乱码的问题在使用Windows终端中的PowerShell时,有时会遇到乱码显示的问题,这可能会给用户带来困扰。这种问题通常与字符编码设置有关,因为不同的字符编码会导致终端无法正确显示特定语言或特殊字符。在本文中,我们将介绍如何解决Windows终端PowerShell中乱码显示的问题,并详细说明各种字符编码的数字表示,以及相关命令的用法。原创 2024-05-23 15:26:27 · 3092 阅读 · 0 评论