自定义博客皮肤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)
  • 资源 (2)
  • 收藏
  • 关注

原创 C# Socket通讯简单Demo

C#中的Socket类是用于网络编程的重要类之一,其Available属性是指当前Socket缓冲区中可用的字节数。当Socket接收到数据时,它会存储在缓冲区中,而Available属性可以让我们知道缓冲区中有多少数据可供读取。通过检查Available属性,我们可以确定是否需要读取缓冲区中的数据,以及可以读取多少数据。该属性可以用于检查接收缓冲区中是否有可用的数据,以便进行相应的处理。

2024-06-16 17:25:12 469

原创 WPF 中Canvas图像缩放和平移

图像上放一个图元,同时实现缩放和平移操作缩放操作:使用滚轮实现缩放,缩放原点以鼠标为中心平移操作:按住鼠标右键,随鼠标平移缩放和平移时图元和图像的相对位置不变

2024-06-02 11:23:21 384

原创 C++ 插件管理

- 插件开发是一种高内聚低耦合的软件开发方式- 通过独立的插件开发能够将不同的插件功能进行组合,从而实现灵活的即插即用以适应不断变化的需求和技术- 为用户提供一个便捷的方式来管理和使用这些插件,从而推动应用程序的功能不断丰富和完善

2024-05-26 15:45:51 885

原创 C++ 优化字符串的使用

改动后平均每次调用花费 1.47 微秒,相比 remove_ctrl_mutating() 提高了 17%改动后平均每次调用花费 1.72 微秒,相比remove_ctrl() 性能提升了 13 倍。测试结果是每次调用 remove_ctrl_cstrings() 的时间为 0.15 微秒。使用包含C++11标准的编译器,因为有移动构造函数和右值引用,可以减少一些不必要的复制。:解析字符串和按标记将字符串分段方面格外优秀,且兼容 std::string。通过几种方式对其进行优化。

2023-11-11 18:48:36 221

原创 设计模式 -- 建造者模式

将一个复杂对象的构建与它的表示分离(将复杂对象分解成多个相对简单的部分,根据不同需要分别创建,最后组合成该复杂对象),使得同样的构建过程可以创建不同的表示

2023-09-17 18:40:54 136

原创 设计模式--工厂模式

【代码】设计模式--工厂模式。

2023-09-10 19:40:42 137

原创 设计模式 -- 原型模式

【代码】设计模式 -- 原型模式。

2023-09-10 19:28:44 99

原创 C++掩码形式存储读取数据

C++掩码形式存储读取数据

2023-03-18 14:52:17 129 1

原创 容器Vector判断是否有重复元素

判断vector中元素是否有相同元素(内置类型、结构体)

2023-03-12 16:44:59 4158

原创 C#从入门到精通(第四版)学习记录-- 第20(文件及数据流技术)

C#从入门到精通(第四版)学习记录-- 第20(文件及数据流技术)

2023-03-12 15:24:25 152

原创 C#从入门到精通(第四版)学习记录-- 第17(抽象类、抽象方法)、18章(迭代器、分布类)

C#从入门到精通(第四版)学习记录-- 第17(抽象类、抽象方法)、18章(迭代器、分布类)

2022-12-17 15:47:58 86

原创 C#从入门到精通(第四版)学习记录-- 第8、9章

C#从入门到精通(第四版)学习记录-- 第8、9章方法、结构和类

2022-12-17 15:31:58 85

原创 C#从入门到精通(第四版)学习记录-- 第5章(字符与字符串)

C#从入门到精通(第四版)学习记录-- 第5章(字符与字符串)

2022-12-11 11:36:18 102

原创 WindowsAPI 创建线程池

使用Windows API创建线程池

2022-12-04 16:21:31 474

原创 C#从入门到精通(第四版)学习记录-- 第1章-第4章

C#从入门到精通(第四版)前4章学习

2022-12-04 15:08:24 133

原创 C#序列化和反序列化XML -- XmlSerializer类

C#序列化和反序列化XML -- XmlSerializer类

2022-11-13 16:52:28 603

原创 get和set属性

变量属性使用

2022-11-13 15:32:49 593

原创 C++创建子进程

C++创建子进程

2022-11-03 21:30:43 1605

原创 工厂及导出类

设计模式 -- 工厂及导出类

2022-10-15 11:27:32 71

原创 委派构造函数

C++11 委派构造函数

2022-10-15 11:22:35 226

原创 列表初始化&&类型收窄

列表初始化&&类型收窄

2022-09-15 20:00:46 151

原创 【C++ 调试注意事项

C++调试注意事项

2022-08-02 22:12:29 311

原创 rapidjson的使用

Json使用

2022-06-17 11:31:30 299

原创 for_each使用记录

for_each使用

2022-06-10 11:25:26 208

原创 C++11 lambda函数

C++运算符重载lambda表达式介绍捕捉列表lambda表达式介绍lambda表达式是C++11引入的一项新技术,表示一个一个可调用的代码单元。可以理解为一个未命名的内联函数,表示形式: [capture](parameters) mutable -> return type { fuction body};#include <iostream>auto f = [] {return 42; }; //[] {return 42; }就是lambda表达式,f()表

2022-05-22 19:37:49 635

原创 C++中常用的运算符重载

C++运算符重载重载现有的运算符+运算符+在类内重载运算符+在结构体内重载运算符==在结构体内重载,使用算法在容器中查找运算符<<在类内重载,实现变体流C++ 中的内置运算符大部分都可以重载成员访问运算符(.:)、成员指针访问运算符(., ->)等不能重载,具体参考C++ 重载运算符和重载函数重载后运算符的调用就像是函数的调用运算符重载定义形式:返回值的类型 operator重载的符号(参数){ ...... //具体的实现}重载现有的运算

2022-05-16 20:36:30 155

原创 右值引用和移动构造函数

移动构造函数和右值引用C++左值和右值C++右值引用拷贝构造函数和右值引用移动构造函数介绍当类中有指针类型的成员变量时,复制构造函数需要使用深拷贝,若申请了大量的堆空间,那么深拷贝操作会影响 对象初始化的执行效率,c++11标准引入了右值引用(一种新的 C++ 语法)和移动构造,可以用来提高效率。C++左值和右值C++右值引用拷贝构造函数和右值引用参考:C++移动构造函数#include <iostream>class demo {public: demo() /

2022-05-02 14:51:09 245

原创 浅谈stringstream的用法

static std::string GenerateSVCLog(const std::string& szKeyWord, unsigned long long int szErrorId) { std::stringstream ssLog; ssLog << kszLBracket << szKeyWord << kszRLBracket; ssLog.setf(std::ios::showbase.

2022-04-22 10:18:49 816

原创 函数放在头文件中时被多次包含,编译报错:重定义

场景分析头文件Main函数包含头文件XLog.h,正常输出添加PrintLog1.h头文件包含头文件XLog.h,正常输出添加PrintLog2.cpp文件包含头文件XLog.h,编译出错函数放在头文件中时被多次包含,编译出错原因解决方法头文件假设有头文件XLog.h#pragma once#include <string>std::string LogTest(const std::string& szLog) { return szLog;

2022-04-20 11:32:19 1953

原创 复制构造函数

复制构造函数和深拷贝编译器调用复制构造函数优化说明

2022-04-13 16:27:42 154

原创 使用宏区别不同的VS和C++标准的版本

__cplusplus__cplusplus(_MSVC_LANG)__cplusplus(_MSVC_LANG)区别是C++还是C,C中没有定义这个宏#include <stdio.h>int main() {#ifndef __cplusplus printf("C program.\n");#else printf("C++ program.\n");#endif return 0;}程序在C和C++兼容,编译出的C目标文件和C++目标文

2022-04-13 15:57:14 1690

原创 c/c++读写照片、传输文件方式

对图片(文件)传输的两种方式

2022-03-20 10:52:59 2722

原创 C++ 递归函数调用

#include <iostream>void Call(int n){ std::cout << "Call: " << n << std::endl; if (n > 0) { Call(n - 1); //调用自己 }}int main(){ Call(10); system("pause"); return 0;}结果

2021-09-27 19:55:07 109

原创 dump调试

dump调试记录

2021-09-27 14:39:11 1239

原创 Qt+VS报错This application failed to start because no Qt platform plugin could be initialized.

运行exe,报错:原因:发布的exe找不到Qt依赖的环境,两种方案解决:设置环境变量:变量名:QT_QPA_PLATFORM_PLUGIN_PATH变量值:D:\Qt5.12.0\install\5.12.0\msvc2017_64\plugins\platforms不同用户,变量名一致,变量值随文件位置变。最后,保存变量后,一定要重启电脑,因为新的环境变量要重启后才能被系统识别!亲测有效,一招解决错误:This application failed to start because no

2021-09-22 15:24:47 1175

原创 文件常用操作

可能需要用到宽字节,可以在工程属性值设置为多字节:右键选择属性–选择高级–高级属性中的字符集选择多字节字符集用到的头文件:#include “Windows.h”1.判断文件是否存在int main(){ std::string szPath = "E:/Test.xml"; struct stat buffer; //文件是否存在,存在返回0 if (0 == stat(szPath.c_str(), &buffer)) { std::cout << "File

2021-09-22 10:45:33 135

原创 C++多线程--互斥锁

创建线程创建两个线程thread一旦被创建出来就开始运行,它的执行动作就是我们调用的函数、对象等所编写的代码。

2021-08-30 14:16:16 6216

原创 计时器的使用

封装计时器

2021-08-27 17:43:52 21

原创 系统时间获取方式

boost库获取系统当前时间#include<iostream>#include<string>#include "boost/date_time/posix_time/posix_time.hpp"int main(){ using namespace boost::posix_time; ptime ptimeCurretTime = second_clock::local_time(); std::string tstCalibTime = to_iso_ext

2021-08-27 17:38:27 168

原创 C++11 智能指针与垃圾回收

在实际的 C++ 开发中,我们经常会遇到诸如程序运行中突然崩溃、程序运行所用内存越来越多最终不得不重启等问题,这些问题往往都是内存资源管理不当造成的。比如:有些内存资源已经被释放,但指向它的指针并没有改变指向(成为了野指针),并且后续还在使用;有些内存资源已经被释放,后期又试图再释放一次(重复释放同一块内存会导致程序运行崩溃);没有及时释放不再使用的内存资源,造成内存泄漏,程序占用的内存资源越来越多。C++ 虽然从来没有公开得支持过垃圾回收机制,但 C++98/03 标准中,支持使用 auto_p

2021-08-27 17:29:58 1701 4

C# Socket通讯,带头尾解析

Socket通讯示例,Client和Lisenter互相通讯,信息带头尾解析

2024-06-16

WPF 中Canvas图像缩放和平移

图像上放一个图元,同时实现缩放和平移操作 缩放操作:使用滚轮实现缩放,缩放原点以鼠标为中心 平移操作:按住鼠标右键,随鼠标平移 缩放和平移时图元和图像的相对位置不变 图元不能超出图像范围 图像不能拖出Canvas范围 图像显示范围比自身尺寸大

2024-06-02

WPF 中Canvas图像缩放和平移

图像上放一个图元,同时实现缩放和平移操作 缩放操作:使用滚轮实现缩放,缩放原点以鼠标为中心 平移操作:按住鼠标右键,随鼠标平移 缩放和平移时图元和图像的相对位置不变

2024-06-02

c++插件管理框架、插件接口及插件实现

插件开发是一种高内聚低耦合的软件开发方式 插件开发符合设计模式的单一职责原则和里氏代换原则 插件即插即用,非常灵活,适用于动态扩展功能的应用程序、大型项目等 本代码是插件管理实现的一种方式,可以动态的加载不同配置的不同插件,支持接口扩展 https://blog.csdn.net/qq_34552942/article/details/139214085?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22139214085%22%2C%22source%22%3A%22qq_34552942%22%7D

2024-05-26

C++日志打印功能需求及实现

1. 固定路径(E:\\log\\)存储日志到txt文件中 2. txt文件以进程名和当前时间命名 3. 保存n个包含此进程名的txt文件,若超过删除旧文件 4. 输出日志包含错误等级、打印时间、用户输入内容,如: LOG_INFO 2023-3-9 15:54:4 134 用户想要输出的内容

2024-03-31

C#序列化和反序列化XML代码实现

XmlSerializer类 多级节点、属性指定说明

2022-11-13

C++ [ rapidjson 使用、封装、UT]、[Base64加码及解码]

C++ [ rapidjson 使用、封装、UT]、[Base64加码及解码]

2022-06-21

windug(win10x64).7z

Windows 调试程序 (WinDbg) 可用于调试内核模式和用户模式代码、分析故障转储以及在代码执行时检查 CPU 寄存器。

2021-09-28

空空如也

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

TA关注的人

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