- 博客(185)
- 资源 (23)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 shell脚本学习入门教程
文章目录shell脚本学习教程前言创建shellshcshtcshashbashvim显示行号shell注释特殊变量shell替换变量替换命令替换转义字符运算符算数运算符关系运算符布尔运算符字符串运算符文件测试运算符字符串单引号双引号拼接字符串获取字符串长度提取子字符串查找子字符串数组定义数组索引数组数组长度if条件语句case语句for循环while循环until循环函数函数调用删除函数函数参数重定向输出重定向输入重定向重定向深入讲解shell脚本学习教程前言任何代码最终都要被“翻译”成二进制的形式
2020-11-20 15:56:54
288
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 QT程序打包部署教程
QT程序打包部署教程 本文讲述如何把deepin系统下开发qt程序打包并部署到测试环境中,测试环境如deepin,ubuntu。1、开发环境 开发系统:deepin V20版本 开发工具:qt5.14.2,IDE->QtCreator 编译生成Realse版本的可执行文件 EClient2、测试环境 测试系统:以deepin V20版本和ubuntu 18.04版本来测试。3、脚本打包教程 以可执行文件命名新建文件夹EClient,把可执行文件拷贝到其中,然后新建脚本文件
2020-11-13 11:25:03
1529
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 管道通信相关知识总结
管道概念管道是进程间通信使用的一种共享内存的方式,创建管道的进程称为管道服务器,连接管道的进程成为管道客户端。进程间通过管道方式,一个进程往管道写入数据,另一个进程从管道取数据,类似socket通信从buf缓冲区读写数据,管道操作也类似文件读写。管道分为匿名管道和命名管道,文中主要介绍命名管道操作。匿名管道匿名管道,没有名称,而且是单工模式,就是两个进程只能一个进程往管道写入数据,另一个进程往管道区数据,而且匿名管道只能使用在父进程与子进程之间,因此如果想要在局域网内使用管道通信,不能使用匿名管道。
2020-06-28 18:31:06
618
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 VS c++编译过程中遇到的问题及解决总结[更新中]
1、问题:LNK1104:无法打开lib文件 LINK : fatal error LNK1104: 无法打开文件“libboost_date_time-vc141-mt-gd-x64-1_71.lib” 解决:[项目属性]->[链接器]->[附加库目录] 添加相应的lib文件的路径,在[链接器]->[输入] 输入lib文件 或者在源码中...
2019-12-13 16:36:51
1185
原创 libdbus 实例以及使用d-feet查看接口方法
libdbus 实例以及使用d-feet查看接口方法libdbus介绍总线 linux系统进程间通过dbus通信,D-BUS由总线构成,总线分为两种,系统总线(system-bus)和会话总线(session-bus)。系统总线在引导时就会启动,这个总线由操作系统和后台进程使用,安全性非常好,以使得任意的应用程序不能欺骗系统事件.会话总线在用户登陆后启动,属于用户私有,是用户进程用来通信的一个会话总线。如果一个应用程序需要接收来自系统总线的消息,可以直接连接到系统总线 —— 不过,它可以发送的消
2022-05-18 15:43:50
1117
原创 zlib库自定义接口封装
zlib库自定义接口封装zlib封装类说明编译zlib库编译自定义接口静态库测试代码代码-文件链接zlib封装类说明实现对文件以及文件夹的压缩解压缩.zip_unzip.h`#ifndef ZIP_UNZIP_H#define ZIP_UNZIP_H#include #include #include #include <type_traits>#include #include <string.h>#include #include <sys/s
2022-04-28 15:53:12
786
原创 String to Integer (atoi)
Implement the myAtoi(string s) function, which converts a string to a 32-bit signed integer (similar to C/C++'s atoi function).The algorithm for myAtoi(string s) is as follows:Read in and ignore any leading whitespace.Check if the next character (if not
2021-12-24 13:14:05
127
原创 2021-09-06 c++11实现最简单的线程池模型
c++11实现最简单的线程池模型 线程池主要解决频繁执行一类任务,避免多次创建线程造成系统资源消耗。线程池可以实现任务执行体复用,减少了线程的创建频率。主要用到如下知识点:知识点std::thread c++11支持的线程库对象,支持高并发,拷贝构造函数(被禁用),意味着 std::thread 对象不可拷贝构造。如何创建一个thread对象,采用以下方法:void f1(){ std::cout<<"f1"<<std::endl;}void f2(int
2021-09-06 16:45:02
249
原创 system进程创建当前登录用户进程
以下函数调用后创建当前用户的进程,前提是当前执行的进程以system权限运行。BOOL _CreateProcessAsUser(LPSTR command_line, PROCESS_INFORMATION &pi){ BOOL ret = FALSE; DWORD sessionId = 0; HANDLE hToken = NULL; HANDLE hTokenLink = NULL; HANDLE hTokenUser = NULL; STARTUPINFOA si; LU
2021-09-01 13:50:04
482
原创 qmake生成makefile,生成core dump文件
qmake生成makefile,生成core dump文件新建build文件夹mkdir build把Makefile文件生成到build目录下qt creator 生成.pro文件,qmake生成makefile文件,需要运行qmake -o Makefile ../*.pro[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8APn8Srs-1630460025861)(./pics/toMakefile.png)]编译生成可执行文件make1 、当程
2021-09-01 09:35:13
593
原创 标准c++/vs/qt 循环语句使用
std::list<int> intList{ 1,2,3,4,5 }; //C++11 标准 for (int var : intList) { std::cout << var; } //VS 特有,非C++标准,不推荐使用 for each(int var in intList) { std::cout << var; } //Qt 特有 fo...
2021-05-26 13:42:06
305
原创 nmap与zenmap源码编译
nmap源码编译nmap源码工程下载:https://nmap.org/dist/nmap-7.91.tar.bz2依赖库下载:svn checkout https://svn.nmap.org/nmap-mswin32-aux遇到错误:unknown character ‘0x40’1、nmap.rc.in需要修改成nmap.rc,然后修改FILEVERSION 1,0,0,12、把 nmap-mswin32-aux 目录拷贝到nmap-7.91同级目录下3、设置包含目录和库目录,(OPSSL
2021-05-08 10:47:48
509
2
原创 git使用常见问题总结
git常见问题总结修改本地分支与远程分支名称首先 git branch -m 旧分支名 新分支名其次 git push --delete origin 旧分支名将新分支名推上去 git push origin 新分支名将新本地分支和远程相连 git branch --set-upsteam-to origin/新分支名//如何忽略提交文件夹创建.gitignore文件1、忽略文件*.bak # 忽略所有扩展名为.bak的文件!keep.bak # 但keep
2021-04-19 15:59:58
125
原创 log4cplus--通过配置文件输出日志文件
log4cplus配置文件示例日志等级log4cplus 提供的日志等级如下:ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF举例来说:如果定义了日志等级为 ERROR,那么只有标记为 ERROR, FATAL的日志信息才会被记录如果等级为 DEBUG,则所有标记为 DEBUG/INFO/WARN/ERROR/FATAL 的日志才会被记录ALL和OFF级别用来将所有其他类型的级别分别切换
2021-04-19 14:00:00
2522
原创 log4cpus--介绍
log4cplus介绍 log4cplus是一个线程安全的c++日志API库,从log4j修改而来。wiki介绍:https://sourceforge.net/p/log4cplus/wiki/Home/log4cplus文档 API文档地址:https://log4cplus.sourceforge.io/docs/html/index.htmllog4cplus示例 示例地址:https://sourceforge.net/p/log4cplus/wiki/CodeExamples/
2021-04-16 15:10:50
152
原创 log4cplus--日志框架编译及测试
log4cplus日志框架编译及测试编译库需要下载log4cplus,ThreadPool, Catch三个项目工程,把ThreadPool源文件和Catch源文件放到log4cplus相应目录里。#执行以下命令sudo ./configuresudo makesudo make install运行结果,库文件安装到/usr/local/lib,头文件安装到/usr/local/include测试demo测试程序路径:https://sourceforge.net/p/log4cplu
2021-04-16 11:18:01
328
原创 c++11-线程池实现以及应用
c++11-线程池实现注:本文参考源于csdn博客一般来说实现一个线程池主要包括以下4个组成部分:**1)线程管理器:**用于创建并管理线程池。**2)工作线程:**线程池中实际执行任务的线程。在初始化线程时会预先创建好固定数目的线程在池中,这些初始化的线程一般处于空闲状态,一般不占用CPU,占用较小的内存空间。**3)任务接口:**每个任务必须实现的接口,当线程池的任务队列中有可执行任务时,被空闲的工作线程调去执行(线程的闲与忙是通过互斥量实现的,跟前面文章中的设置标志位差不多),把任务抽象出来
2021-04-09 16:16:14
427
原创 Unicode字符集下多字节与宽字符转换
Unicode字符集下格式各种字符串转换字符类型有三种编码格式:1:SBCS (single byte character set)单字节字符集。在这种编码格式下,所有字符都用一个字节表示。ASCII码就是单字节字符。用“0”来表示一个字节的结束。2 :Unicode 是一种所有的字符都使用两个字节编码的编码模式。Unicode 字符有时也被称作 宽字符。3:MBCS (multi-byte characters set)多字节字符集。在windows里面 MBCS 包含两种字符类型:单字节字符(s
2020-12-18 15:07:45
309
原创 windows获取登录用户名以及SID
LPWSTR GetLoginSid(){ HANDLE hToken; if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ALL_ACCESS, &hToken)) { printf("[!]OpenProcessToken error\n"); return 0; } DWORD Size, UserSize, DomainSize; SID *sid; SID_NAME_USE SidType; TCHAR User.
2020-12-11 15:26:29
1937
原创 解决加载libqxcb.so失败以及Linux库搜索顺序
最近在ubuntu下使用qt编写程序,遇到QtCreator编译完程序后运行出现错误,无法启动程序,错误信息如下图:经过分析,libqxcb.so依赖库应该从qt安装目录下查找,错误提示信息中显示搜索路径为系统库目录,因此可以肯定是搜索路径的问题,因此需要添加环境变量,修改ld.so.config文件修改后生效使用命令sudo ldconfig专门脑补以下Linux关于动态共享库搜索顺序的问题,下面内容为网上查阅:ld.so 动态共享库搜索顺序1、ELF可执行文件中动态段DT_RPATH指
2020-12-09 17:02:49
5415
原创 完整的音频播放示例
完整的音频播放示例使用最新的SDL2.0版本,对于http://dranger.com/ffmpeg教程中示例改进,更新API// tutorial_1.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。//#include <iostream>#include <windows.h>extern "C"{#include <libavcodec/avcodec.h>#include <libavformat/avforma
2020-12-09 13:44:29
551
原创 批处理编写以及修改注册表
批处理修改注册表1、批处理注释以下内容摘抄至 https://blog.csdn.net/wh_19910525/article/details/8125762在批处理中**,段注释**有一种比较常用的方法: goto start = 可以是多行文本,可以是命令 = 可以包含重定向符号和其他特殊字符 = 只要不包含 :start 这一行,就都是注释 :start另外,还有 其他各种注释形式,比如:1、:: 注释内容(第一个冒号后也可以跟任何一个非字母数字的字符)2、r
2020-12-09 09:48:20
3228
原创 SDL_AudioSpec结构中call_back函数解析
SDL_AudioSpec结构中call_back函数解析参考教程http://dranger.com/ffmpeg/tutorial03.htmlvoid audio_callback(void *userdata, Uint8 *stream, int len)第一个参数userdata是AVCodecContext,为了获取AVPacket传入AVCodecContext结构体,用于解码第二个参数stream指向需要填充的音频缓冲区第三个参数len,表示音频缓存区的大小对于何时调用call
2020-12-04 14:29:54
1187
原创 local sytem获取登录用户操作注册表
local sytem获取登录用户操作注册表问题windows系统服务进程的用户为local system,具有超级管理员权限,不属于某一个用户,因此在批处理文件中无法使用%username%来获取当前登录的用户名,无法操作当前用户的文件路径C:/users/XXX/…,sytem进程如何获取当前登录用户名并操作HKCU?则需要做一个映射,通过HKEY_USERS/SID,通过用户名找到对应的SID。批处理脚本如下:解决@echo offfor /f "skip=1" %%a in ('quse
2020-10-14 16:12:00
243
原创 字节串与字符串相互转换的代码
字节串与字符串相互转换的代码:inline std::string hexStrTobytes(unsigned char * cHex, int nHexLen){ std::string strBytes; unsigned char pTemp; for(int i=0; i<nHexLen; i=i+2) { if(cHex[i]>='A' && cHex[i]<='F') {
2020-10-12 10:31:58
170
原创 deepin系统下编译使用libtorrent
deepin系统下编译使用libtorrent安装openssl查看系统是否安装sslopenssl version -a安装opensslsudo apt install opensslsudo apt install libssl-dev安装boost下载源码:https://dl.bintray.com/boostorg/release/1.74.0/source/boost_1_74_0.tar.gz#解压tar zxvf boost_1_64_0.tar.gzcd bo
2020-10-09 15:05:35
272
原创 deepin中使用Qt Creator时无法输入中文
拷贝/usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts目录下面libfcitxplatforminputcontextplugin.so文件到qt安装目录下 /Qt5.11.1/Tools/QtCreator/lib/Qt/plugins/platforminputcontexts /Qt5.11.1/5.11.1/gcc_64/plugins/platforminputcontexts,设置libfcitxplatforminpu
2020-09-28 10:01:44
338
原创 duilib-自定义圆形按钮-环形进度条控件
duilib-自定义圆形按钮-环形进度条控件如何自定义一个圆形按钮控件内嵌到环形进度条底部,点击按钮刷新进度条值,类似下图:1、在UIDefine.h中增加宏定义#define DUI_CTR_BTN_PROGRESS (_T("btnProgress"))2、编码控件头文件 UIBtnProgress.h#ifndef UI_BTN_PROGRESS_H#define UI_BTN_PROGRESS_H#pragma once#include <GdiPlus.h&
2020-08-21 17:32:11
1789
5
原创 duilib-自定义曲线控件
duilib-自定义曲线控件duilib现有的控件继承图如下:从上图可以看出常见的控件都是由CControlUI继承而来,因此如果需要自定义控件,可以继承CControlUI,重写子类。如何做一个类似windows任务管理器的曲线控件,如下图所示:自定义曲线控件展示如下:下面详细说明如何在duilib源码中自定义曲线控件,以及如何在xml中设置控件属性。1、重写控件类CChartCtrlUI,继承于CLabelUI或者CControlUI,控件类CChartCtrlUI中必须重写的函数方法如
2020-08-20 17:40:03
2231
9
原创 windows性能计数器status code解释
ValueMeaningPDH_CSTATUS_NO_MACHINEPDH was unable to connect to the computer specified in the counter path. If this status is returned when the counter is being added, the counter is not completely initialized. Each time the query is updated, PDH...
2020-08-14 13:09:14
359
转载 <转>HOOK SSDT相关文章
请转到以下链接使用 ???????? :SSDT Hook 之内核函数ZwTerminateProcess实现监控结束进程???? :SSDT Hook 之内核函数ZwC...
2020-08-04 17:36:48
132
原创 DLL注入与卸载(用于hook api)
DLL注入与卸载代码参考网上,最后做个小工具可以加载dll并注入到目标进程1、判断系统版本,winxp win7 win vista win10DWORD checkOS(){ OSVERSIONINFO os_version; os_version.dwOSVersionInfoSize = sizeof(os_version); if (GetVersionEx(&os_version)) { if (os_version.dwMajorVersion == 5) {
2020-08-04 14:22:32
1275
转载 WinDbg下载符号文件
文章目录一、符号文件的用处二、下载符号文件(微软官方符号服务器无法访问)三、加载用户层的符号文件参考资料一、符号文件的用处...
2020-07-28 13:53:06
5869
原创 c++11学习一
1 函数模板namespace tl{ template <typename T> void swap(T & t1, T & t2) { T tmpT; tmpT = t1; t1 = t2; t2 = tmpT; }}2 类模板template <class T> class Stack { public: Stack(); ~Stack(); void push(T t);
2020-07-24 09:06:25
107
原创 windows update更新返回错误码统计(WUSA.exe)
windows update更新返回错误码统计 (WUSA.exe)This Exit Codes or Return Values can be retrieved from an Windows Update Installation.Return CodeReturn Code HEXMessage23592970x240001WU_S_SERVICE_STOP23592980x240002WU_S_SELFUPDATE23592990x240003W
2020-07-22 10:33:16
4339
原创 获取windows已安装应用列表
windows系统安装的软件在注册表中有记录,路径为:注册表根句柄KEY_LOCAL_MACHINE,路径为"Software\Microsoft\Windows\CurrentVersion\Uninstall",涉及到32位应用和64位应用,如果是64位系统,32位的应用则存放在"Software\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall",64位应用则存放在"Software\Microsoft\Windows\CurrentVers
2020-07-09 16:43:18
8375
3
原创 四、文件 注册表 多线程
文件 注册表 多线程1、文件操作,内核模式下打开、创建、拷贝文件#include <ntddk.h>VOID DriverUnload(PDRIVER_OBJECT pDriverObject){ KdPrint(("驱动成功卸载\n"));}void MyCopyFile(HANDLE source, HANDLE dest){ NTSTATUS status; PVOID buffer = NULL; LARGE_INTEGER offset = { 0 };
2020-07-03 18:06:14
329
原创 三、字符串操作
1、UNICODE_STRING windows内核编码字符集采用unicode字符集,字符串处理使用UNICODE_STRING,是一个结构体,定义如下:typedef struct _UNICODE_STRING { USHORT Length; USHORT MaximumLength;#ifdef MIDL_PASS [size_is(MaximumLength / 2), length_is((Length) / 2) ] USHORT * Buffer;#els
2020-07-03 13:54:39
323
基于zlib库实现简单文件及文件夹的压缩解压缩功能
2022-04-28
threadPool.rar
2021-04-12
shell脚本学习.md
2020-11-20
msdn gdi+文档.pdf
2020-08-31
GetSoftInfo.rar
2020-07-09
zstd解压缩库.rar
2020-06-15
QNX_Neutrino_RTOS_C_Library_Reference.pdf
2019-11-20
libtorrent1.2dll 32 and 64.rar
2019-07-05
软件注册码生成以及验证方法(duilib界面)
2018-09-11
基于tensorflow实现猫狗识别代码(CNN)
2018-08-17
卷积神经网络MNIST代码及测试数据
2018-07-13
CEdit控件重写类CEditList,输入自动提示匹配内容
2018-05-25
duilib与MFC结合做的软件界面DEMO
2018-01-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人