
珠海
扳手的海角
这个作者很懒,什么都没留下…
展开
-
328_C++_HTTP_HTTP协议传输data数据,为什么要进行base64编解码操作?
HTTP协议是基于文本的。这意味着它主要处理字符数据,而不是二进制数据。发送二进制数据时,将其转换为文本格式,数据就可以作为文本在HTTP协议中传输。原创 2024-05-07 11:24:43 · 432 阅读 · 0 评论 -
327_C++_C风格和C++风格写文件操作
std::ofstream \ fopen原创 2024-05-07 09:46:43 · 249 阅读 · 0 评论 -
326_C++_读文件data到buffer中,拷贝文件、删除文件及目录,都使用函数,不用cmd命令行
removeDir、CopyDirectory、CopyFile :自定义函数,fread、fwrite使用C函数原创 2024-05-06 14:15:23 · 174 阅读 · 0 评论 -
325_C++_QT_QMessageBox 对话框定时关闭,使用QTimer::timeout、timer->start(xxx)
【代码】325_C++_QT_QMessageBox 对话框定时关闭,使用QTimer::timeout、timer->start(xxx)原创 2024-05-06 13:46:59 · 290 阅读 · 0 评论 -
322_C++_将“Key_lists“的第一项中的key提取出来进行base64解码得到用于加密的salt 使用salt、“iter“迭代次数以及用户密码 进行PBKDF2处理得到加密后的秘钥Enc
当执行两条API请求的时候,第一条API的作用就是获取二次请求的key,请求到的key进行base64编解码形成加密的slat后,给第二条API调用原创 2024-04-26 10:29:47 · 129 阅读 · 0 评论 -
321_C++_字符串流的高级使用法,提高文件读取性能,以高效的方式处理二进制文件、非文本文件(如图像、音频、视频等)或跨平台兼容的文件
通过`std::filebuf`的成员函数针对`底层文件流`高效操作,完成写文件数据到buffer中,后续可对buffer转base64,跨平台传输文件~原创 2024-04-26 10:03:02 · 288 阅读 · 0 评论 -
320_C++_一整段JSON赋值给C++string类型对象
【代码】320_C++_一整段JSON赋值给C++string类型对象。原创 2024-04-25 10:58:34 · 225 阅读 · 0 评论 -
319_C++_使用QT自定义的对话框,既能选择文件也能选择文件夹,为什么使用QListView和QTreeView来达成目的?
使用 Qt 提供的对话框,开发者可以控制对话框的外观和行为,确保它们符合应用程序的整体风格原创 2024-04-19 13:23:47 · 331 阅读 · 0 评论 -
318_C++_写入结构体的函数 + 仿函数,配合算法使用,忘记了,今日用到回忆一下
C++的结构体(struct)中可以包含成员函数。在C++中,结构体和类(class)在功能上是相似的,只是默认的访问权限不同。结构体中的成员默认是public的,而类中的成员默认是private的原创 2024-04-17 21:27:31 · 131 阅读 · 0 评论 -
314_C++_QT表格的撤销、恢复,可对多行、多item进行撤销、恢复操作
QT表格的撤销、恢复,可对多行、多item进行撤销、恢复操作。原创 2024-04-11 14:17:29 · 192 阅读 · 0 评论 -
313_C++_QT表格插入行、删除行,使用继承自QUndoCommand的自写类
QT表格插入行、删除行,使用继承自QUndoCommand的自写类。原创 2024-04-10 16:54:08 · 131 阅读 · 0 评论 -
312_C++_QT表格的剪切、拷贝、粘贴,轻量化操作
QT表格的剪切、拷贝、粘贴,轻量化操作。原创 2024-04-10 16:24:57 · 207 阅读 · 0 评论 -
311_C++_QT表格的单个item的撤销、恢复操作,代码量很小,轻量化
轻量化操作原创 2024-04-10 16:21:51 · 246 阅读 · 0 评论 -
310_C++_Qt中string乱码解析成中文,且可以对中文路径的文件夹进行std::ifstream流和opendir的打开操作,结合_309
【代码】310_C++_Qt中string乱码解析成中文,且可以对中文路径的文件夹进行std::ifstream流和opendir的打开操作,结合_309。原创 2024-04-02 11:26:11 · 135 阅读 · 0 评论 -
309_C++_QT中string类型打印、显示中文乱码,将宽字符串转换为UTF-8字符串此贴完美解决,优快云上好多都不行无法转换
【代码】309_C++_QT中string类型打印、显示中文乱码,将宽字符串转换为UTF-8字符串此贴完美解决,优快云上好多都不行无法转换。原创 2024-04-01 20:15:53 · 259 阅读 · 0 评论 -
308_QT_QTableWidget表格的复制、粘贴、剪切,程序完美有注释,更详细的地方可问小度
批量粘贴的时候,也限制了粘贴的显示区域,也就是只能粘贴0、1列,显示不论点击哪里,批量粘贴,都是粘贴到0、1列。原创 2024-03-28 08:51:14 · 341 阅读 · 0 评论 -
304_C++_C风格,读取文件st_size大小数据到数组buf,然后对buf进行Base64编码【涉及C++中的字符串处理和Base64编码】
设计函数:open、fstat、read、sl::crypto::base64::encode、close文件描述符原创 2024-01-30 09:48:41 · 121 阅读 · 0 评论 -
303_C++_QT_使用boost::str(boost::format()); 拼接字符串,QT上打印是乱码的解决方式,记录一下,使用toLocal8Bit()转码一下
使用boost::str(boost::format());拼接字符串,QT上打印是乱码的解决方式,使用toLocal8Bit()转码一下。原创 2024-01-10 14:35:54 · 426 阅读 · 0 评论 -
302_C++_QT_QComboBox样式设置,由多个控件组合成一个整体,有5各部分,与button按键等控件有很大区别
参考链接地址-1参考链接地址-2原创 2024-01-02 10:43:53 · 449 阅读 · 0 评论 -
301_C++_字符串解析函数‘strcasestr‘
strcasestr 是一个字符串查找函数,它在不区分大小写的情况下查找一个字符串在另一个字符串中的位置原创 2023-12-21 21:13:02 · 628 阅读 · 0 评论 -
294_C++_报警状态bit与(&)上通道bit,然后检测置位的通道,得到对应置位通道的告警信息,适用于多通道告警,组成string字符串发送
适用于多通道告警,用bit位的置位来表示对应通道产生了告警,组成string字符串发送;其中结构体进行了多层嵌套,第二层中还要枚举+联合体原创 2023-11-16 22:02:59 · 407 阅读 · 0 评论 -
289_C++_视频reader读取视频流的buffer,不断的回调获取视频buffer数据,通过判断关键帧 i 帧的时间戳,来觉得是否要保存到数据存储的容器中【未完成】
不同的多媒体框架和库可能使用不同的时间单位和时间刻度来表示 PTS,但其基本目的都是相同的:确保音视频同步和正确的播放顺序。在接下来的代码中,有一些条件检查和操作,这部分代码可能与特定的视频处理需求相关,例如处理解码速度慢的情况、缓存帧等等。,则执行一些操作,如检查最新视频帧的时间戳与当前帧之间的时间间隔,如果时间间隔过大,可能会清空当前读取数据的缓冲区,这似乎是用于处理一些特殊情况的逻辑。通过正确设置每个视频帧的 PTS,可以确保视频帧和音频帧在播放过程中按照正确的时间进行同步。原创 2023-10-18 20:55:15 · 161 阅读 · 0 评论 -
283_C++_对于在多线程环境中进行的,而且操作涉及到了共享数据结构 ‘mJsonParamBuff‘ 的修改从而导致的死机问题中的【竞态条件】的理解+多种解决方式
在您提供的代码中,有一个名为的二维数组,它用于存储不同类型和索引的 JSON 参数。根据您的代码,每个元素都有一个特定的大小,用于存储 JSON 参数的文本数据。这个大小通过调用.resize()和字符串操作来设置。nodeStr根据您的代码,您正在修改中的元素以存储新的 JSON 参数。如果您按照正确的方式分配了足够的内存,并确保没有发生缓冲区溢出,那么这个代码应该是安全的。strcpystrcpy此外,您的代码还包含了线程锁定操作(和),这表明该代码在多线程环境中使用。原创 2023-10-03 16:30:14 · 88 阅读 · 0 评论 -
282_WEB_对于注册、数据data_callback中进行处理的理解
这段代码是一个 HTTP 服务器中处理请求的核心部分,涉及到路由和请求处理的逻辑。让我们逐行解析代码,同时理解其中涉及的关键概念和组件。首先,你提供的代码有一些与 HTTP 请求和路由处理相关的部分,同时还有一些可能是从一个较大的代码基础中提取的片段,因此有些变量和函数的定义在代码中没有提供,我会尽量解释这些部分的功能。原创 2023-09-26 22:27:20 · 289 阅读 · 0 评论 -
280_JSON_json是否有内存对齐概念
JSON数据是文本格式,不直接涉及内存对齐,因为内存对齐通常是与二进制数据相关的概念。原创 2023-09-25 21:09:48 · 254 阅读 · 0 评论 -
279_C++_再次理解内存对齐概念
在这种情况下,结构体中的整数成员将会占用4字节,而浮点数成员将会占用8字节,因为它们分别满足了4字节和8字节的对齐要求。因此,结构体中的填充字节将会占用4个字节,以确保结构体的起始地址是4字节的整数倍。编译器通常会在结构体的成员之间插入填充字节,以确保每个成员都按照其对齐要求排列,同时保持结构体的总大小是对齐要求的整数倍。是的,内存对齐的原则通常是按照当前结构体(或类)中的成员中的最大字节大小来对齐整个结构体。成员的对齐要求通常是4字节,而缓冲区的起始地址不一定是4字节对齐的,这就导致了未对齐字节的问题。原创 2023-09-23 12:17:47 · 157 阅读 · 0 评论 -
278_C++_C++的随机数生成:std::mt19937 cltmpRndm、std::uniform_int_distribution<int> cltmpDst(1, 65535);
这段代码涉及到C++的随机数生成。:这行代码创建了一个名为cltmpRndm的随机数生成器对象,并使用当前时钟时间的纳秒计数作为种子(seed)。获取当前系统时钟的时间点。返回该时间点与纪元(通常是1970年1月1日)之间的时间间隔。count()返回时间间隔的计数,这通常是纳秒级别的计数。这个计数将被用作随机数生成器的种子,以确保每次程序运行时都会生成不同的随机数序列。这一行代码的目的是初始化随机数生成器,并设置了一个不同的种子,以便每次运行程序都能产生不同的随机数序列。:这行代码创建了一个名为。原创 2023-09-20 21:42:24 · 111 阅读 · 0 评论 -
277_C++_boost::asio中的异步操作【async_send_to】,其中的【boost::asio::buffer】的作用以及在【buffer缓冲区中引用数据】的注意事项
_socket.async_send_to(boost::asio::buffer(_data.data(), _data.size()), *_endpoints.begin(), std::bind(&service::go, shared_from_this(),std::placeholders::_1));原创 2023-09-20 21:07:09 · 493 阅读 · 0 评论 -
276_Python_桌面的一个TXT文档里的内容,插入到Word文档的指定位置
这个脚本会在名为"修改内容"的单元格下方插入一个新的表格,并将TXT文档的内容放入新表格的第一个单元格中,然后保存为新的Word文档。确保将脚本中的路径替换为你自己的TXT文档和Word文档的路径。这个脚本会在名为"修改内容"的单元格下方的原有内容的第一行插入TXT文档的内容,然后保存为新的Word文档。这个脚本会在名为"修改内容"的单元格下已有文本的最上面插入TXT文档的内容,然后保存为新的Word文档。这个脚本会在名为"修改内容"的单元格下方插入TXT文档的内容,然后保存为新的Word文档。原创 2023-09-19 20:31:48 · 614 阅读 · 0 评论 -
274_C++_可用结构体模版实现【单例对象】特性,273_C++_evnet msg callback中使用了该特性,此处单独举例
当使用结构体模板来实现单例时,可以在结构体模板中创建一个静态成员变量来存储单例对象的实例,并使用模板参数来定义不同类型的单例对象。原创 2023-09-15 20:48:32 · 142 阅读 · 0 评论 -
269_C++_static inline qint32 toInt(void *p) :类型转换函数,用于在指针和整数之间进行转换 + intptr_t` 和 `uintptr_t` 的详细解析
类型转换函数,用于在指针和整数之间进行转换 + intptr_t` 和 `uintptr_t` 的详细解析原创 2023-09-10 15:31:01 · 121 阅读 · 0 评论 -
267_shell_替换文件名中的日期部分(230905_8380_8378),例如:work/08.03-first/n/weixin/xxx文件名_230905_8380_8378
shell替换文件名中的日期或者字符原创 2023-09-05 20:01:42 · 148 阅读 · 0 评论 -
264_BOOST中的Json库解析_BOOST_AUTO(itrpromodel, doc.FindMember(“productmodel“));
BOOST_AUTO(itrpromodel, doc.FindMember("productmodel")); if(itrpromodel != doc.MemberEnd())解析JSON中的成员原创 2023-09-02 15:39:34 · 677 阅读 · 0 评论 -
255_C++_shared_from_this()是干嘛的,[std::shared_ptr]C艹标准库中的智能指针类型的简单举例
shared_from_this():这是在一个类的成员函数中调用的,用于获取指向当前对象的 std::shared_ptr。这可以确保在函数执行期间保持对对象的引用,以防止对象在函数执行期间被销毁。原创 2023-08-13 22:16:11 · 345 阅读 · 0 评论 -
263_C++_获取当前时钟的时间、对纳秒部分进行归一化为何%取余操作
clock_gettime(CLOCK_MONOTONIC, &tv)获取时钟事件 、 tv.tv_nsec[纳秒] = nsecs % 1000000000;原创 2023-08-27 21:26:50 · 260 阅读 · 0 评论 -
262_C++_<chrono> 时间库来计算两个时间点之间的时间间隔,并将间隔转换为纳秒(一百万分之一毫秒)为单位的时间长度:std::chrono::nanoseconds
` 时间库来计算两个时间点之间的时间间隔,并将间隔转换为纳秒为单位的时间长度。 std::chrono::duration_cast(t1 - t0).count()原创 2023-08-27 21:22:56 · 289 阅读 · 0 评论 -
261_C++_<chrono> 时间库中的steady_clock::now()、duration_cast<std::chrono::duration<int>>
时间库,用于测量时间间隔并输出相关信息。它的作用是测量某个操作的执行时间,并将结果输出到控制台,这里是秒的计算。原创 2023-08-27 21:11:34 · 506 阅读 · 0 评论 -
259_C++_`std::dynamic_pointer_cast` 是 C++ 中的一个模板函数,用于进行动态类型转换操作,主要用于智能指针的转换’
`std::dynamic_pointer_cast` 是 C++ 中的一个模板函数,用于进行动态类型转换操作,主要用于智能指针的转换。它的作用是将一个派生类类型的智能指针转换为基类类型的智能指针,或者将基类类型的智能指针转换为派生类类型的智能指针。原创 2023-08-27 20:30:45 · 460 阅读 · 0 评论 -
258_C++_用普通结构体的方式,加在上锁、解锁的地方,用来判断有无地方卡住,抢资源,导致没释放卡住了线程 | typedef struct DEBUG_PRINT
void print(int ThreadId) 打印出所有添加过的信息,ThreadId个原创 2023-08-22 20:04:48 · 81 阅读 · 0 评论 -
252_BOOST_线程中的定时器使用,使用【Boost.Asio类】来完成这个异步操作,从而不影响线程中的其他操作
Boost.Asio 是一个 C++ 库,是 Boost C++ 库中的一部分,专注于异步 I/O 操作和事件驱动编程。它提供了一种简单而强大的方式来处理异步操作,包括网络编程、定时器、文件 I/O 等。Boost.Asio 是多种应用领域的选择,特别是在构建高性能网络应用程序时非常有用。异步操作支持:Boost.Asio 提供了异步 I/O 操作的支持,使程序能够在进行 I/O 操作的同时执行其他任务,而不会阻塞线程。定时器和计时器:库中有定时器类,允许你创建定时触发的回调函数。原创 2023-08-09 22:21:05 · 433 阅读 · 0 评论