自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(49)
  • 资源 (4)
  • 收藏
  • 关注

转载 02、CMake构建多文件C++项目

CMake的创建者建议不要使用globbing,因为当创建/删除文件时,globbing不会自动更新构建系统。这可能会导致其他人在构建你的代码时遇到问题,他们从版本控制中更新项目,运行构建,然后联系你,抱怨“构建出错了”。CMake提供了几种方式来指定源文件,一种是使用全局的方式,一种是将源文件一一列出的方式。作者曾在一个项目中使用globbing,但是当添加新文件时收到了很多投诉,这足以成为明确列出文件而不是使用globbing的理由。它可以帮助你保持一个干净的构建目录,避免一些潜在的构建问题。

2023-11-24 23:48:39 153

转载 01、使用CMakeLists.txt构建第一个跨平台C++程序

然后,我们定义了一个项目名为HelloApp,指定了项目的版本为0.0.1,并添加了一个描述为"The leading Hello world App"的说明。在实际的构建系统中,可能会有更详细的版本信息显示,具体取决于使用的构建工具和集成开发环境。最后,我们使用target_compile_features命令为HelloAppBinary目标设置了编译器的特性,这里我们指定了C++的标准为C++20。在这个CMakeLists.txt文件中,我们首先指定了最小的CMake的版本要求为3.5。

2023-11-23 22:47:49 92

原创 23种设计模式

23种设计模式的C++实现

2023-10-06 10:52:17 302

原创 CMake+MinGW+OpenCV4.2.0

系统环境Qt 5.14.2OpenCV4.2.0CMake 3.22.0注意一定要配置系统环境变量一、下载OpenCVhttps://opencv.org/opencv-4-2-0/二、可能的错误三、如果configure的时候没有翻墙,会有几个文件下载不到下载地址在 CMakeDownloadLog.txt 中通过搜索 #cmake_download 可以找到四、选项配置五、命令行编译如果设置了系统变量,还是报错找不到 mingw32-make,可以直接这样C:\Q

2022-05-24 16:23:49 212

原创 关于MySQL的一点记录

增加Connector/C++存取图片内容

2021-12-09 23:10:04 599

原创 文件相关操作和字符串等备忘

std::wstring和 std::string互相转换#include <string>#include <locale>#include <codecvt>// convert string to wstringinline std::wstring to_wide_string(const std::string& input){ std::wstring_convert<std::codecvt_utf8<wchar_..

2021-12-08 13:32:01 534

原创 VS2019编译QtXlsxWriter

下载QtXlsxWriter源码GitHub - dbzhang800/QtXlsxWriter: .xlsx file reader and writer for Qt5.xlsx file reader and writer for Qt5. Contribute to dbzhang800/QtXlsxWriter development by creating an account on GitHub.https://github.com/dbzhang800/QtXlsxWriter..

2021-11-25 09:44:39 468

原创 关于QToolTip的小段代码

bool SortingBox::event(QEvent *event) { if (event->type() == QEvent::ToolTip) { QHelpEvent *helpEvent = static_cast<QHelpEvent *>(event); int index = itemAt(helpEvent->pos()); if (index != -1) { .

2021-11-23 16:30:34 157

原创 入门OpenGL - 旋转的立方体

#include "PGLFW.h"#include <iostream>#include <fstream>#include <sstream>using namespace std;//--------------------------------------------------------------------------------------------- 回调void framebuffer_size_callback(GLF.

2021-11-22 23:24:31 2180

原创 【GLFW 代码记录】入门使用

#include <iostream>#include <string>#include <fstream>#include <sstream>#include <glad/glad.h>#include <glfw3.h>//使用VAO#define USE_VAO 1/* 三角形绘制基础代码 顶点数组对象:Vertex Array Object,VAO 顶点缓冲对象:Vertex .

2021-11-17 23:06:10 620

原创 (2D、3D)平移、缩放、旋转矩阵

2D3D旋转需要考虑旋转中心

2021-11-14 17:26:55 768

原创 QtCharts 折线、饼图代码

#include "demo_01.h"#include <QtCharts>using namespace QtCharts;#include <QVBoxLayout>#include <QTimer>double gX = 0;double gY = 0;QVector<QPointF> gPts;demo_01::demo_01(QWidget *parent) : QWidget(parent){ //创建图.

2021-11-14 16:30:00 1027

原创 关于窗口的一些设置记录

异形窗口,设置隐藏主窗体setAttribute(Qt::WA_TranslucentBackground);无边框、置顶setWindowFlags(Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint)无边框且保留尺寸变化setWindowFlags(Qt::CustomizeWindowHint)子类化QWidget,为避免样式失效,可设置setAttribute(Qt::WA_StyledBackground,

2021-11-10 10:51:50 214

原创 ffmpeg音视频解封装代码参考

解封装av_register_all() 注册函数avformat_network_init()avformat_open_input(...) 打开封装avformat_find_stream_info(...) 找到流信息av_find_best_stream(...) ...

2021-11-08 10:03:21 121

原创 Bresenham 算法画直线

参考:Bresenham 画线算法推导过程_在到处之间找我-CSDN博客_bresenham画线算法今天复习这个算法的时候,有一点没有立马反应过来,故特此记此篇博客作为备忘。文章目录描点原理用 $p_i$ 代替 $d_1 - d_2$$p_i$ 递推如何确定 $p_1$ 呢?程序代码描点原理原理就是描实距离D点最近的那个点,距离的判断通过判断d1和d2的大小来确定。d1大,说明距离(xi+1,yi)(x_i + 1, y_i)(xi​+1,yi​)更远,要描实(xi+1,yi+1)(x_i...https:

2021-11-07 15:09:14 1403

原创 层次法建立二叉链表树

#include <stdio.h>#include <stdlib.h>typedef int datatype ;typedef struct node { datatype data; struct node *left, *right; }BitTree;//辅助队列Q,这是用来存关系的BitTree* Q[16];//这是一个指针数组,它将缓存节点的地址,因为这个地址将以//left域,或者right域进入二叉链表,它本身不维护i,2i...

2021-11-03 09:03:07 184

原创 常用命令记录

检查内存泄漏简单版:valgrind --tool=memcheck ./yourApp详细版:valgrind --tool=memcheck --leak-check=full ./yourApp查看进程信息ps -eo pid,ppid,sid,tty,pgrp,comm,stat,cmd | grep -E 'bash|PID|nginx'

2021-10-31 18:35:51 52

原创 服务器程序目录规划、makefile 编写

守护进程是一种长期运行的进程,这种进程在后台运行,不与任何控制终端关联。守护进程的基本特点如下:(1)生存期长,一般操作系统启动的时候它就启动,操作系统关闭的时候它才关闭。(2)守护进程跟哪个终端都没有关联,即没有控制终端,所以哪个终端退出都不会导致守护进程退出。(3)守护进程是在后台运行的。一个执行程序末尾加&,就在后台运行了。后台运行不会占着终端。守护进程编写规则1、调用 umask(0);2、fork一个子进程出来,然后父进程退出...

2021-10-31 10:55:49 185

原创 数组形式的二叉树完全实现

二叉树的操作定义1、构造2、查找3、插入4、遍历5、求深度二叉树的3个重要的性质1、在二叉树的 i层上至多有 个结点 ( i >= 1)2、深度为 h的二叉树至多有个结点3、度数为0的结点个数用表示,度数为2的结点个数用表示,则二叉树顺序存储的明显缺点,在一般二叉树中,可能存在上图中的退化,会造成明显的空间浪费。#include <iostream>using namespace std;/* ...

2021-10-30 10:21:01 2018

原创 fork函数详解

在一个进程中可以使用fork函数创建一个子进程,当该子进程创建时,它从fork函数的下一条语句(或者说从fork的返回处)开始只执行与父进程相同的代码。fork函数产生一个和当前进程完全一样的新进程,并和当前进程一样从fork函数调用中返回。#include <stdio.h>#include <stdlib.h> //malloc,exit#include <unistd.h> //fork#include <signal.h>#inclu

2021-10-29 22:41:13 1075

原创 Linux系统中的信号编程

信号集定义:信号集表示一组信号的来(1)或者没有来(0)。数据类型:sigset_t//sigset_t结构大概长这个样子typedef struct{ unsigned long sig[2];}sigset_t;信号相关函数(1)sigemptyset 把信号集中的所有信号都清零(2) sigfillset 把信号集中的所有信号都设置为1(3)信号集中支持60多个信号,可以向信号集中增加(信号标志设置为1)或删除(信号标志设置为0)特定的信号,用 sigadds

2021-10-29 21:37:33 103

原创 内存泄漏检测工具

1、VS内置工具,使用方法参考下列代码参考博客:C-VS2019 内存泄漏检测_mrbone11的博客-CSDN博客_vs2019内存泄漏检测工具平常编写C代码时,如果忘记释放已分配的内存,就会造成内存泄漏,这时我们有两种方式确认造成内存泄漏的位置,一种是直接检查代码中所有涉及到内存分配的地方是否最后都进行释放了,这种方法的缺点在于在代码量较大时手工检查工作量较大,另外如果使用第三方库,一方面我们可能对库何时分配了内存不甚了解,另一方面单独检查每个分配内存的函数也较为繁琐。另一种方法是借助 Visual

2021-10-21 10:35:32 428

转载 获取系统当前时间

在调试、日志输出、代码优化时,我们常常需要获得系统的时间。在一些性能要求高的代码优化时,对时间的精确度还比较高。在网上找不高质量的代码,便自己研究了一下,代码如下(能满足跨平台的要求,单位精确到微秒):#ifdef _WIN32#include <windows.h>#else#include <time.h>#endif // _WIND32// 定义64位整形#if defined(_WIN32) && !defined(CYGWIN)..

2021-08-13 21:38:37 509

原创 关于使用QVariant和QDataStream进行序列化操作的介绍

1、关于序列化百度词条:序列化(Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程。2、一些开源序列化工具(1)Boost的serialization库(2)谷歌的protobuf,官网地址:https://developers.google.cn/protocol-buffers/(3)用于在C++结构体和json/xml之间互相转换的 XPACK ​​​​​ ...

2021-08-10 20:28:21 1852

原创 3、Lua 调用 C++函数传递表和参数类型检查

lua_next(L,pos)先从栈顶弹出一个key从栈指定位置的table里取下一对key-value,先将key入栈再将value入栈如果第2步成功则返回非0值,否则返回0,并且不向栈中压入任何值ps:L表示lua_State栈,pos表示位置lua调用c++遍历key-value的table//C++int CTestTable(lua_State* L){ //先在栈底插入一个空的值 lua_pushnil(L); while (lua_next(L,

2021-07-12 22:44:16 373 1

原创 2、Lua 基本语法

Lua基本语法Lua变量变量全局变量写法本地变量写法Lua数据类型nil 空类型:boolean 类型:number 类型:string 类型:多行字符串赋值 [[]]字符串拼接 ..string 处理Lua控制结构语句if 条件语句while循环语句repeat 循环语句for 循环语句Lua表和函数语法Lua表处理Lua函数函数语法参数函数覆盖Lua变量变量全局变量写法a = 10有2个脚本如下:main.lua, test.lua-- main.luaprint("Hello Lua"

2021-07-11 16:39:34 138

原创 1、VS2019 + Lua 环境配置

第一步:lua 源码下载地址:http://www.lua.org/versions.html选择 Lua 5.1 版本下载(随意),解压后的文件如下:第二步:打开vs,创建一个动态库工程LuaDll,将 lua-5.1.5 中 src 内的源码文件添加到工程 LuaDll 中。第三步:1)选择工程右键 -> 属性-> C/C++ -> 预处理器添加 _CRT_SECURE_NO_WARNINGS 去除安全警告添加 LUA_BUILD_AS_DLL

2021-07-11 11:36:30 2031

原创 QPushButton qss 美化

QString btnStyle = "QPushButton\ {background:qlineargradient(spread:pad,x1:0,y1:1,x2:0.5,y2:0.5,stop:1 rgba(10%,10%,10%,55%),\ stop:0.45 rgba(10%,10%,10%,65%),stop:0.85 rgba(10%,10%,10%,55%),stop:0.95 rgba(25...

2020-08-09 21:45:22 549

转载 MFC中的控件随窗口大小变化

1.在对话框的头文件中添加 POINT old;2.在OnInitialDlg()中添加CRect rect;GetClientRect(&rect);old.x = rect.right - rect.left;old.y = rect.bottom - rect.top;3.在添加消息函数 OnSize()if (nType == S

2017-09-01 09:15:39 354

原创 多个按键点击映射到同一个消息函数中的方法(ON_COMMAND_RANGE)

多个按键点击映射到同一个消息函数中的方法(ON_COMMAND_RANGE)建立MFC基于对话框的工程:CMyDlg.h,CMyDlg.cpp方法步骤:1.在MFC对话框中添加 按键 ,确保它们的ID号连续,即:在Resource.h 文件中 数字是连续的#define IDC_BTN_START                   1000#defin

2017-08-23 21:06:33 673

原创 线程同步:CRITICAL_SECTION, Mutex , Event

3个线程同步的使用例子:1.互斥量 MutexHANDLE m_hMutex;hMutex = CreateMutex(NULL,FALSE,NULL);// 创建一个匿名的互斥对象WaitForSingleObject(hMutex,INFINITE);...被保护的代码段ReleaseMutex(hMutex);2.事件 EventHANDLE

2017-08-15 16:25:26 269

原创 CString to char * 和 char * to CString

1.CString to char *CString 类型的 strSend 最后转换为 char * 的 pstr:const size_t strsize=(strSend.GetLength()+1)*2; // 宽字符的长度;char * pstr= new char[strsize]; //分配空间;size_t sz=0;wcstombs_s(&sz,pstr,st

2017-08-15 14:25:41 344

原创 得到 主窗口

//主窗口,(通常使用AfxGetApp()->m_pMainWnd可以得到) GetMainWnd() 也可以得到主窗口

2017-08-14 21:58:18 176

原创 1. 创建 控制台 TCP 服务端程序步骤

创建控制台服务端的步骤:1.启动 WinSock DLL -------> WSAStartup2.创建套接字 Socket3.绑定套接字和本地IP bind4.将套接字设置为监听模式 listen5.接收客户端的请求产生连接套接字 accepte6.发送消息给客户端 send7.接收客户端发送过来的消息 recv---->(关闭连接套接字 closesocket)

2017-08-12 22:23:31 590

原创 HDC, CDC, CClientDC, CWindowDC

创建一个单档MFC应用//-----------------------------------------------------------------------------------------------------------------------// 利用SDK全局函数 HDC 画线// 鼠标左键按下void CDrawView::OnLButtonDow

2017-08-12 12:00:03 165

转载 改变 AfxMessageBox() 的标题

// 改变 AfxMessageBox() 的标题int CEmployeeApp::DoMessageBox(LPCTSTR lpszPrompt, UINT nType, UINT nIDPrompt){LPCTSTR pOldAppName = m_pszAppName;m_pszAppName = _T("温馨提示");int iRet = CWinApp::DoMes

2017-08-06 02:23:10 308

原创 2.Unicode 编码 和 多字符集 编码

UNICODE 与 多字符集 ANSI 是两种文字编码方式多字符集:各国文字的编码之间有些重叠的编码(编码冲突)UNICODE(统一编码): 各国编码统一编码,优点在于,无论在哪个国家的操作系统中,各国文字都能无障碍地被显示出来;Unicode 与 多字符集字符串互相转换1.API : WideCharToMultiByte  与 Multi

2017-08-03 18:14:45 411

原创 1.windows 应用程序开发(MessageBox 和 DialogBox 和 WM_COMMAND)

#include #include "resource.h"// HINSTANCE 一个实例的句柄INT_PTR CALLBACK theProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam){ // 这是一个回调函数,等待点击后的处理 switch (uMsg) { case WM_CO

2017-08-02 21:25:23 698

转载 PostQuitMessage(0);

函数功能描述:PostQuitMessage函数通知系统当前有一个线程发送了进程中止退出请求.它典型的使用在WM_DESTROY消息处理中.函数原型:VOID PostQuitMessage(  int nExitCode   // exit code);参数:nExitCode: 表征应用程序退出码.该值将作为WM_QUIT消息的wParam参数送到消息队列.

2017-08-01 23:41:19 3441

原创 MD5加密

static void Main(string[] args)        {            string s=GetMD5("123");            Console.WriteLine(s);            Console.ReadKey();        }        public static string GetMD5(strin

2016-10-07 21:00:36 178

libxlsxwriter-1.1.5-vs2019

编译环境:vs2019 / 10.0.18362.0

2023-09-03

zlib-1.3.0-vs2019-10.0.18362.0

编译环境:vs2019 / 10.0.18362.0

2023-09-03

VS2019编译QtXlsxWriter,包含编译完成的QtXlsx

VS2019编译QtXlsxWriter,包含编译完成的QtXlsx

2021-11-25

Hello_OpenGL.zip

OpenGL入门-旋转的立方体(glfw初始化窗体,编译shader)

2021-11-22

QDataStream_ForSerialize.rar

QDataStream序列化自定义结构体

2021-08-10

传智播客C语言基础PPT

传智播客C语言基础PPT 传智播客上课用的课件

2014-10-01

空空如也

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

TA关注的人

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