C++学习笔记
文章平均质量分 61
jumul
这个作者很懒,什么都没留下…
展开
-
C++获取系统开关机记录并打印(通过读取系统日志实现)
C++获取系统开关机记录并打印前言一、直接查询事件日志过程1.2.3.4.二、代码查询开关机记录方案三、源码总结前言IDE:VS2019项目类型:C++控制台应用系统:WIN7或WIN10原理:通过调用Windows操作系统API查看windows事件日志中指定的事件ID来获取开关机时间,该记录所能获取的数据量取决于系统事件日志的缓存大小配置。其中,事件ID12表示正常开机,事件ID13表示正常关机,事件ID6008表示意外关闭。源码链接见文章末尾,可免费下载。一、直接查询事件日志过程1原创 2021-01-05 22:08:30 · 3873 阅读 · 21 评论 -
C++USB通信。使用hidapi库与控制板通信。C++与hid设备通信。hidapi库的配置与使用。
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、HID是什么?二、使用步骤1.引入库2.获取USB-HID设备3.打开和关闭USB-HID设备4.发送和接收报告5.发送和接收数据总结前言这篇文章主要是记录C++与USB-hid设备(即免驱动的usb设备,鼠标、键盘就是hid设备)进行通信,它也是一种USB设备,只不过不需要安装驱动,如果要与非USB-HID设备通信请参考libusb。libusb首页github地址一、HID是什么?USB-HID是Uni原创 2020-12-08 15:58:39 · 14416 阅读 · 19 评论 -
C++实现类似print函数的日志打印功能。C++运用可变参数的日志打印函数。
#include <direct.h>//创建路径所需头文件#include <fstream>//操作文件流所需头文件#include <stdarg.h>//可变参数头文件#include <time.h>//时间处理void LOG(const char* pLogTxt, ...){ //这里检测目录存在和创建的部分可以放到程序的初始化函数中,只检查一次就好了,避免每次打印都要检查一遍 char pLogPath[40]{ "./BYLO原创 2020-12-08 10:37:33 · 1040 阅读 · 0 评论 -
VS2017/2019怎样配置第三方库才能不用每次新建项目都重新包含一遍?VS2017/2019怎样全局包含或添加第三方库?vs2019 第三方库 配置到整个平台
当使用第三方库时,我们新建一个项目总是需要单独为它包含进去所需要的库。如果这个第三方库不常用还好说,每次新建一个项目包含进项目即可。但是如果是经常使用的话就会很麻烦了,那么有没有什么方法能包含一次让所有项目都受用呢?下面我来介绍一下具体配置方法。1、首先随便建一个文件夹用来存放所有的第三方库,我这里建在了VS2019的安装文件夹中2、将所有的第三方库文件夹都放在刚才这个文件夹里,这里我使用rapidjson库为例。3、这样,一个第三方库的目录就建立好了,接下来就是配置VS2019..原创 2020-10-21 13:40:47 · 5289 阅读 · 0 评论 -
C++学习笔记之字节数组转为16进制字符串几种方式
1、利用sprintf_sstring ToHexString(unsigned char* input,int datasize){ char output[3]; string result; for (int j = 0; j < datasize; j++) { sprintf_s(output, 3, "%02X", input[j]); result += output; } return result;}2、利用流输出string toHexStr原创 2020-07-14 19:35:36 · 2267 阅读 · 0 评论 -
C++学习笔记之打印8、10、16进制数字的几种方式
1、流输出#include <iostream>#include <bitset>///c++中控制进制的头文件#include <stdlib.h>///c中的函数库#include <bits/stdc++.h>///万能头文件,如果选用此头文件,就不用其他所有头文件using namespace std;int main(){ int a = 100; cout<<"十进制 "<<dec<&l转载 2020-07-14 15:12:53 · 6293 阅读 · 0 评论 -
C++学习笔记之const object*无法转变为object*
const_cast是一种C++运算符,主要是用来去除复合类型中const和volatile属性(没有真正去除)。变量本身的const属性是不能去除的,要想修改变量的值,一般是去除指针(或引用)的const属性,再进行间接修改。用法:const_cast<type>(expression)通过const_cast运算符,也只能将const type*转换为type*,将const type&转换为type&。也就是说源类型和目标类型除了const属性不同,其他地方转载 2020-07-14 15:13:26 · 416 阅读 · 0 评论 -
C++学习笔记之如何获取指针开辟空间或数组空间的大小以及_countof、sizeof、strlen、_Msize的区别
获取空间大小的方法主要有_countof、sizeof、strlen、_msize。比较简单的方法就是_msize()函数,这个函数适用于char*类型的指针,如果是其他类型例如int*,返回的结果会是开辟的空间个数*指针步长。#include <iostream>using namespace std;int main(){ char* a = new char[10]; int* b = new int[10]; cout << _msize(a) <原创 2020-05-13 10:05:47 · 7746 阅读 · 0 评论