C++ – std::filesystem判断文件或者文件夹是否存在
std::filesystem提供了std::filesystem::exist方法用于判断文件或者文件夹是否存在。 1 函数原型 std::filesystem::exist函数原型如下 bool exists( std::filesystem::file_status s ) noexcept;…
- C++
- 2023-10-20
C++ – std::filesystem判断文件类型
1 std::filesystem C++17的std::filesystem提供了下列判断文件类型的函数: std::filesystem::is_block_file:判断文件路径是否引用块设备 std::filesystem::is_character_file:判断文件路径是否引用符设备 s…
- C++
- 2023-10-17
C++ – std::filesystem::path类使用方法总结
从C++17开始,可以使用std::filesystem::path类对文件路径进行操作,可以完成文件路径连接、文件路径分离等功能工具类。 1 std::filesystem::path 官方文档:https://en.cppreference.com/w/cpp/filesystem/path s…
- C++
- 2023-10-16
C++ – 在HWND上显示CImage透明图片
1 在窗口HWND上显示CImage透明图片 在之前发表的文章:OpenCV – cv::Mat转换为CImage,支持透明通道图片转换 中我介绍了如何将OpenCV的cv::Mat转换为MFC的CImage结构,其中包含了带透明通道的cv::Mat转换为CImage的方法。本文将紧接上文,介绍如何…
- C++
- 2023-10-07
C++ – Windows下实现程序开机自启动功能或者关闭开机自启动
1 Windows下程序实现开机自启动的原理 在Windows系统下要实现程序开机自启,主要是在系统注册表路径HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run写入需要开机自启动的程序路径。 Windows在系统启动时会去系…
- C++
- 2023-09-26
C++ – 跨平台在Windows、Linux系统上获取当前可执行程序路径
1 C++跨平台在Windows、Linux系统上获取当前可执行程序路径 跨平台获取当前可执行程序路径是C++跨平台项目中会经常使用的功能,我将这个功能简单的封装成了一个PathUtils工具类,在该类中通过GetCurrentProgramDirectory静态函数获取当前可执行程序路径,下面贴出…
- C++
- 2023-09-07
CMake – 链接多线程pthread库的几种方式
经常需要在项目中使用到标准库的多线程std::thread,这些项目在Linux上跨平台编译时需要链接pthread库才可以正确的编译和运行。而CMake中链接pthread又有比较多的方式,本文就简单的归纳下CMake中链接pthread的各种方式的写法。 1 第一种方式 直接在target_li…
- C++
- 2023-09-06
GCC – 常用手动链接选项-lz、-lrt、-lm、-lc、-lpthread、-lcrypt、dl链接都是什么库?
1 GCC的-l选项,手动添加链接库 GCC在编译代码时,可以使用-l手动添加链接库,比如说有以下代码main.c #include <stdio.h> #include <math.h> #define PI 3.14159265 int main () { double …
- C++
- 2023-09-06
GCC – -fpic、-fPIC、-fpie、-fPIE编译选项的作用和区别
本文主要对gcc和cmake经常使用的编译选项-fpic、-fPIC、-fpie、-fPIE的作用和区别进行总结。 1 -fpic 官方文档说明 Generate position-independent code (PIC) suitable for use in a shared library…
- C++
- 2023-09-06
CMake – 指定gcc、g++编译器
1 CMake指定gcc/g++编译器 Centos7默认的gcc和g++版本是4.8.5,这个版本对C++11的特性支持的不是很完全,所以一般都建议使用高版本的gcc和g++。 假设: 高版本的gcc的路径为:/opt/rh/devtoolset-10/root/bin/gcc 高版本的g++的路…
- C++
- 2023-09-02
C++ – GCC版本与C++标准之间的对应关系
1 GCC版本与C++标准的对应关系 C++到今年为止已经有了C++98、C++11、C++14、C++17、C++20,而C++23也于今年发布,而C++26也预计在2026年发布。目前在项目中一般是C++11作为标准,当然也有时会用到C++14和C++17的一些特性。 GCC是支持多种编程语言的…
- C++
- 2023-09-01
C++ – Windows系统使用C++切换音频默认输出设备
1 Windows系统上切换默认音频输出设备 如果电脑上插了多个音频输出设备(比如同时插了音响和耳机),在Windows系统中一般通过在声音设备页面选择输出设备,通过这种方式切换音频的默认输出设备。 也可以在高级声音选项 - 应用音量和设备首选项单独为某个软件设置音频输入设备和音频输出设备。 2 使…
- C++
- 2023-08-30