- 博客(108)
- 资源 (3)
- 收藏
- 关注
原创 windows下ffmpeg源码编译
windows下设置环境变量MSYS2_PATH_TYPE为inherit。然后运行,完事,home的用户目录下就有了。编译不同自行改脚本。
2023-04-11 18:34:51 215
原创 boost unit test
boost unit test介绍Demo介绍前两个差不多BOOST_CHECK_EQUALBOOST_CHECKBOOST_CHECK_MESSAGE 比check多个参数-输出BOOST_REQUIRE 错误不会往下执行BOOST_ERROR 直接输出BOOST_FAIL 直接输出Demo#define BOOST_AUTO_TEST_MAIN#include <boost/test/unit_test.hpp>int test1(int x){ printf
2022-05-19 17:03:33 295
转载 [部署日记]GO在Visual Studio Code初次运行时提示The “gopls“ command is not available. Run “go get -v golang.org/x/
[部署日记]GO在Visual Studio Code初次运行时提示The "gopls" command is not available. Run "go get -v golang.org/x/tools/gopls" to install.本以为VSC在商城装上插件后就能拎包入住,F5的时候我当场好家伙于是无脑Install…Installing github.com/nsf/gocode FAILEDInstalling github.com/uudashr/gopkgs/cmd/gop
2022-05-16 15:03:14 2415 1
转载 vs编译pthread库
vs编译pthread库首先将pthread库的源码从网上下载下来,下载地址是pthreads-w32-2-9-1下载。下载下来后解压源码,使用vs2015打开里面的pthread.dsw。在预处理定义中添加HAVE_STRUCT_TIMESPEC,如下图:在“资源”中添加两个预处理器:PTW32_RC_MSC和PTW32_ARCHx64,如下图:————————————————版权声明:本文为CSDN博主「clever101」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出
2022-03-15 16:13:39 706
原创 vs生成ITERATOR_DEBUG_LEVEL问题
vs生成ITERATOR_DEBUG_LEVEL问题介绍解决介绍有的时候你去改MDd这些东西也没用。解决clean一下,再生成即可
2022-03-11 15:27:38 201
原创 QT富文本简单使用
QT富文本简单使用介绍插入遍历指定框架遍历指定框架中所有文本块(包括子框架)介绍富文本其实就是在一个编辑框内又输入文字又输入图片等各种东西,不仅仅是文字,qt自带的有QTextEdit,该类中有一个QTextDocument,一切就从这里开始。主要搞明白以下几个类:QTextDocumentQTextFrameQTextBlockQTextCursorQTextTableFormatQTextImageFormatQTextListFormat插入子框架QTextFrameForm
2022-02-16 16:32:09 1062
转载 vs2019拖拽窗口布局崩溃问题
介绍原因是版本太低,升级高版本就可以解决方案(转载)将就解决方案又不是不能用,不拖曳窗口就行,不会弄那就这样将就用临时解决方案虽然拖曳窗口会崩溃,但可以鼠标右键 “新建垂直文档组”。也达到目的,不过不够优雅优雅的解决方案编辑 %InstallRoot%\Common7\IDE\devenv.exe.config 和 %LocalAppData%\Microsoft\VisualStudio\16.0_xxx\devenv.exe.config ,并在AppContextSwitchOverr
2022-01-31 15:22:14 1301
原创 windows键盘过滤
windows键盘过滤#include <ntddk.h>#include <ntddkbd.h>extern POBJECT_TYPE *IoDriverObjectType;typedef struct _DEV_EXT{ //结构大小 ULONG uNodeSize; //过滤设备 PDEVICE_OBJECT pFltDevObj; //自旋锁 KSPIN_LOCK lockRequests; //同步事件 KEVENT eventProgres
2022-01-18 09:18:04 536
原创 openssl base64
openssl base64介绍Demo介绍linux上想用到base64,网上也没找到类似libbase64这种轻量的库,只能用openssl了没什么好介绍的,原理懂的都懂,掉它的api,再加判断就完事了Demo#include "openssl/bio.h"#include "openssl/evp.h"#include "openssl/buffer.h"#include <iostream>#include <cstring>int decode_bas
2022-01-14 10:50:30 526
原创 IoCreateDevice简单分析
IoCreateDevice简单分析介绍大体流程存储参数扩展大小计算设备属性组计算判断设备属性组判断设备类型一些其他计算创建对象申请内存初始化设备队列插入对象传入模板介绍简单分析一下大体流程1.判断设备属性组2.设备属性为0调用IopCreateDefaultDeviceSecurityDescriptor3.判断设备类型4.ObCreateObject5.判断设备类型6.FILE_DEVICE_UNKNOWN类型调用IopCreateVpb和KeInitializeEvent7.KeI
2022-01-11 10:14:26 1122
原创 基于VS2019与WDK7600环境搭建
基于VS2019与WDK7600环境搭建介绍安装配置编译文件编译运行介绍网上好几个方法都试了一下,最后发现该方法好使。安装默认已经安装好了VS和WDK本人WDK路径为: D:\WDK7600配置1、新建空项目 右键-属性-常规,修改为以下为makefile2、VC++ 目录 包含目录 具体路径根据自己安装的去对3、照着下边改 DBG可以任意编译文件这里你需要2个文件1.buildCmd.cmd2.sources第2个文件是网上复制的别人的…buildCmd.cmd@e
2022-01-07 14:29:55 1663
原创 ffplay播放用法
ffplay播放用法用法用法#mp4ffplay 1.mp4#yuvffplay -f rawvideo -video_size 1920x1080 1.yuv#h264ffplay -f h264 1.h264不断更新…
2022-01-06 17:28:27 1131
原创 ffmpeg YUV编码成h264
ffmpeg YUV编码成h264介绍流程如下输出上下文打开输入创建视频流参数设置查找编码器设置编码器打开编码器写入文件头循环读取数据写入数据写入文件尾示例代码介绍直接读取本地YUV文件,然后编码成h264,再存盘流程如下输出上下文AVFormatContext* formatCtx = NULL; if (avformat_alloc_output_context2(&formatCtx, NULL, NULL, pOutFileName) < 0) { std::cout
2022-01-06 17:22:21 2217
原创 ffmpeg视频解码
ffmpeg本地视频解码介绍Demo介绍大致流程:1.打开文件 -> 查找流 -> 找到视频流索引 -> 查找解码器 -> 创建解码器上下文 -> 打开解码器2.配置数据转换上下文 -> 计算帧大小并分配内存 -> 关联帧数据和内存 -> 循环读取3.读取后发送给ffmpeg -> 获取解码后的数据 -> 格式转换 -> 存盘Demo#include <iostream>extern "C"{#include
2022-01-06 10:24:27 1319
原创 git LF被CRLF替换问题
git LF被CRLF替换问题问题解决问题warning: LF will be replaced by CRLF解决设置自动转换为false即可git config --global core.autocrlf false
2021-12-21 17:26:09 470 1
原创 syn测试
syn测试介绍Demo执行介绍随便测试一下,发现似乎只有保留地址才生效RECVDemo#include <iostream>#include <unistd.h>#include <sys/socket.h>#include <sys/types.h>#include <netinet/in.h>#include <arpa/inet.h>#include <cstring>#include <l
2021-12-20 14:30:02 295
原创 gitee文件夹灰色问题
gitee文件夹灰色问题原因解决方法原因灰色文件夹中当初有一个.git所以导致成为灰色解决方法删除缓存即可git rm -r --cached "文件夹"
2021-12-17 18:05:36 639 1
原创 c++关于mutex与bind冲突问题
c++关于mutex与bind冲突问题介绍错误解决介绍类中有mutex成员然后外部用了bind绑定这个类的某个函数编译时会出错错误error: use of deleted function ‘std::mutex::mutex(const std::mutex&)’解决mutex成员换成指针即可...
2021-12-14 11:43:18 930
原创 虚拟内存的仿真
虚拟内存的仿真介绍Demo介绍就是一个仿真,一般来说这东西知道个原理就差不多了。但极端需求的情况下可能需要自己实现一个,例如写操作系统的时候。下边是部分代码DemoPT.h#pragma once#include <iostream>#include <vector>#include <time.h>class PT{public: typedef struct _PTE { //块号 int nFrameNum; //是否有
2021-12-11 13:42:23 738
原创 vscode下载慢问题
vscode下载慢问题介绍解决方法介绍直接在官网下载,比较慢,有时候甚至下载不了解决方法用国内的镜像即可vscode.cdn.azure.cn替换掉地址例如原来的下载地址是https://az764295.vo.msecnd.net/stable/7db1a2b88f7557e0a43fec75b6ba7e50b3e9f77e/VSCodeUserSetup-x64-1.63.0.exe我们只需要替换成以下即可https://vscode.cdn.azure.cn/stable/7db
2021-12-10 09:09:07 440 1
原创 set/multiset自定义排序与查找规则
set/multiset自定义排序与查找规则介绍Demo介绍排序重载 <查找重载 ()Demostruct XXX{ int a; int b; bool operator<(const struct XXX& xxx) const { return this->a < xxx.a; } bool operator()(const struct XXX& xxx)const { if (this->b == xxx.b)
2021-12-09 16:34:50 607
原创 排序算法-快速排序
排序算法-快速排序介绍Demo介绍这个就不用介绍了,反正一般都是调库。老是忘记快排的原理,留个代码方便以后忘记的时候看Demovoid kuaisu(int data[], int left, int right){ if (left >= right) { return; } int nCenter = data[left]; int l = left; int r = right; while (l < r) { while (data[r] <
2021-11-24 13:02:47 243
原创 mysql设置库编码
mysql设置库编码查看所有应用字符集设置数据库本身编码重启修改数据库编码查看所有应用字符集show variables like 'character%';设置数据库本身编码vim /etc/mysql/mysql.conf.d/mysqld.cnf在lc-messages-dir = /usr/share/mysql 语句后添加 character-set-server=utf8vim /etc/mysql/conf.d/mysql.cnf[mysql]下添加:default-cha
2021-11-22 12:14:43 562
原创 mongodb开启认证
mongodb开启认证介绍配置文件重启mongodb认证介绍mongodb里的账号是与数据库对应的,非全局,所以要给指定数据库创建账号首先,在数据库里创建俩账号,一个admin的一个指定数据库的(假设名为test)use admindb.createUser({ user: "root", pwd: "123456", roles: [{ role: "userAdminAnyDatabase", db: "admin" }] })use testdb.createUser({ user: "
2021-11-20 09:42:48 1714
原创 mongo-c-driver释放client崩溃
mongodb释放内存崩溃介绍解决办法介绍系统:ubuntu18.04数据库: 5.0.41.20.0版本的mongo-c-driver里mongoc_client_destroy会报以下错误src/bson/bson.c:2281 bson_destroy(): precondition failed: bsonAborted (core dumped)解决办法换成1.18.0就好了...
2021-11-19 23:09:51 722
原创 mongodb-c-driver构建
mongodb-c-driver介绍示例介绍安装方式可以看官网http://mongoc.org/libmongoc/current/installing.html示例先安装依赖sudo apt-get install cmake libssl-dev libsasl2-devsudo apt-get install libbson-1.0-0编译构建(从git上)git clone https://github.com/mongodb/mongo-c-driver.gitcd mon
2021-11-19 10:50:54 1080
原创 mongodb索引
mongodb索引查看创建删除查看db.t1.getIndexes()会显示以下[ { "v" : 2, "key" : { "_id" : 1 }, "name" : "_id_" }]v 版本号key 索引列name 索引名创建createIndex(设置, 选项)1为升序
2021-11-19 09:26:06 191
原创 mongodb文档的查询
mongodb表[集合]的查询统计个数分页排序统计个数count(条件)db.t1.count()分页limit(行数)skip(行数) 跳到查询出的指定行数据,与limit配合使用相当于mysql里的 limit x,x#显示前两行db.t1.find().limit(2)#从第二条数据开始显示前两行db.t1.find().limit(2).skip(1)排序升序设置为1,降序设置为-1#升序db.t1.sort({"id":1})#降序db.t1.sort({"id
2021-11-19 08:36:40 397
原创 mongodb文档的CRUD
mongodb表[集合]的CRUD插入查询更新删除插入#插入一行db.t1.insert({"name":"张三", "age":25})#插入多行db.t1.inertMany([{"name":"张三", "age":25},{"name":"李四", "age":30}])查询find(条件)条件查询中以下要注意:$gt 大于$gte 大于等于$lt 小于$lte 小于等于$ne 不等于#查询所有db.t1.find()#带条件查询 第一个参数 age==25db.
2021-11-18 14:20:45 81
原创 mongodb表[集合]的操作
@TOC查看所有表show collections创建db.createCollection("xxx")删除db.xxx.drop()
2021-11-18 12:51:17 221
原创 mongodb数据库的操作
mongodb数据库创建删除查看所有数据库进入or创建查看当前操作的数据库删除当前操作的数据库查看所有数据库show dbs进入or创建#有则进入,无则创建use xxx这里的xxx就是数据库名use和mysql的use用法一样,只是mongodb里use一个不存在的数据库时,就代表创建查看当前操作的数据库db删除当前操作的数据库use xxxdb.dropDatabase()要先进入,再删除...
2021-11-18 12:45:34 141
原创 ubuntu防火墙相关操作
ubuntu防火墙相关操作介绍介绍#查看状态sudo ufw status#查看版本sudo ufw version#启用sudo ufw enable#禁用sudo ufw disnable
2021-11-18 12:21:44 164
原创 QT绘制饼状图QChartView
QT绘制饼状图QChartView介绍Demo介绍首先要在pro里加上QT += charts然后添加以下#include <QtCharts>using namespace QtCharts;之后QChartView中有个QChart往这个QChart里添东西就行可以不需要单独实例化个QChartDemoQPieSeries *series = new QPieSeries(this);series->append("发的发撒 - 10%", 1)
2021-11-16 14:47:41 865
原创 vscode配置以及远程开发
vscode配置以及远程开发插件配置文件插件基础插件C/C++C++ IntellisenseC/C++ Runner(非必须)远程插件Remote - SSH配置文件tasks.json(构建文件,make方式){ "tasks": [ { "type": "shell", "label": "make", "command": "make", "args": [
2021-11-16 11:47:10 689
原创 linux内核信号量自实现
linux内核信号量自实现介绍核心apilinux源码实现实现原理自实现介绍大概就是down和up两个函数一个加锁,一个解锁这里主要用于进程同步核心apiset_current_stateschedulewake_up_processlinux源码实现在linux内核源码里对于信号量资源操作,主要是通过自旋锁结构体大概如下:struct sem{ int rc; sipnlock lock; struct task_struct* queue_list;}实现原理ta
2021-10-25 20:32:18 154
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人