C++
c++
Caicaptain
善心善行,不忘初心
展开
-
C++值和指针传递回顾
值传递void swap(int *a,int *b){ int temp; temp=*a; *a=*b; *b=temp; cout<<"a=" <<a<<" ,"<<"b="<<b<<endl; cout<<"*a=" <<*a<<" ,"<<"*b="<<*b<<endl; cout<<"&a=" <<&am原创 2021-04-26 19:39:34 · 259 阅读 · 0 评论 -
C++回调详解
https://www.cnblogs.com/smartlife/articles/12519130.html原创 2020-07-22 10:34:30 · 175 阅读 · 0 评论 -
qt实现读写二进制文件
QFile file("D:\\Tcpview.exe"); if (file.exists()) { if ( file.size() > 2097152 ) { QMessageBox::information(this, tr("up file fail"), tr("Failed to up file, file size need < 2M.")); return; } if(!file.open(QIODevice::R..原创 2020-07-16 17:32:36 · 1572 阅读 · 0 评论 -
C++读写文件二进制和文本区别
C++读写文件二进制和文本区别https://www.cnblogs.com/litaozijin/p/6582048.html原创 2020-07-14 18:23:53 · 220 阅读 · 0 评论 -
C++常用代码库——异常处理
try { ... } catch(boost::exception &e/*std::exception& e*/) { //std::cout << e.what() << std::endl; std::cerr << boost::diagnostic_information(e); }原创 2020-06-10 10:48:05 · 189 阅读 · 0 评论 -
C++常用代码库——效率计算
效率计算#include <stdio.h>#include <time.h>// clock_t 是clock()函数的返回值类型clock_t start, stop;// 记录被测代码的运行时间,以秒为单位double duration;int main(){ // 记录开始时间 start = clock(); //......代码 // 记录结束时间 stop = clock(); // 计算代码执行花费的原创 2020-06-10 10:47:37 · 493 阅读 · 0 评论 -
C++常用代码库——类型转换(更新中)
string和其他类型//C11string to_string (int val);//long -> stringlong ulDefSiz = 100000;stringstream ss;ss << ulDefSize;string str = ss.str();OutputDebugStringA(str.c_str());int和char*//int-》char*//1.windows的itoaint aa = 30;char c[8];itoa原创 2020-06-10 10:46:33 · 214 阅读 · 0 评论 -
C++常用代码库——文件读写
C版本#include <stdio.h>typedef struct { char a[10]; char b[11];}stu;int main(){ stu test = {0}; FILE *fp; fp = fopen("D:\\path", "w+"); // +代表可写,没有权限为只读, b表示二进制,a表示追加(打开或新建,文件存在则打开),r表示打开(文件要存在),w表示新建文件(文件存在则覆盖) //"r" "打开一原创 2020-06-10 10:44:21 · 751 阅读 · 0 评论 -
常用C++代码——整理自己的通用代码
qqqq原创 2020-05-23 01:15:20 · 3729 阅读 · 0 评论 -
一段日志代码引发的思考(日志库)
工作中需要用到日志输出到文本,现在手上有一套代码(log.cpp\log.h),大概日志使用方法一开始是这样的:原始版本char *sLog = "需要输出的日志";CLog log;log.AddLog(sLog);log.cpp一开始是这样的void CLog::AddFmtLog( const char* fmt, ... ){ va_start(marker, fmt); _FormatMessage(fmt, marker, logMsg); va_end(marker);原创 2020-05-20 18:25:55 · 192 阅读 · 0 评论 -
QT实现一个视频播放器(vlc)
现在有一个需求,需要使用QT写界面,使用vlc进行视频的操作,显示在QLable上面。借鉴了雷神大佬的博客,使用的环境是vs2015+Qt5.9.0。第一先介绍了vlc的下载和配置。二和三是雷神大佬的例子,用来测试。四介绍了完成需求的主要代码和流程。源码下载地址一、下载配置vlc本文使用的vlc版本下载地址是: http://get.videolan.org/vlc/3.0.3/win32/ 下面的vlc-3.0.3-win32.7z比如下载到:C:\Users\czf\Downloads\vlc原创 2020-05-19 23:33:04 · 4991 阅读 · 0 评论 -
docker简介、虚拟机与Docker有何不同
为什么越来越多人使用docker那么,为什么大家都追捧容器和Docker呢?Hyper-V、KVM和Xen等虚拟机管理程序都“基于虚拟化硬件仿真机制。这意味着,它们对系统要求很高。” 然而,容器却使用共享的操作系统。这意味着它们在使用系统资源方面比虚拟机管理程序要高效得多。容器不是对硬件进行虚拟化处理,而是驻留在单单一个Linux实例上。这反过来意味着,你可以“丢弃没有用的99.9%的虚拟机垃圾,原创 2017-10-10 22:16:44 · 4713 阅读 · 0 评论 -
ansi、unico、utf8
几种编码的区别ASCII码–>ansi–>gb2312 Unicode—>utf8\utf16(UTF-8是Unicode的实现方式之一) http://www.ruanyifeng.com/blog/2007/10/ascii_unicode_and_utf-8.htmlUTF-8(无BOM)和UTF-8这两个有什么区别呢?BOM是什么呀?BOM: Byte Order Mark UTF-8原创 2017-10-10 18:45:42 · 261 阅读 · 0 评论 -
微信小程序
小程序例子http://blog.csdn.net/zhangdaiscott/article/details/53200276小程序部分文档 https://www.w3cschool.cn/weixinapp/weixinapp-location.html原创 2017-09-11 20:34:20 · 155 阅读 · 0 评论 -
http和https及网络协议
http协议分析工具 http://www.cnblogs.com/klguang/p/4624333.html http报文详解 http://www.cnblogs.com/klguang/p/4618526.html URL与资源 http://www.cnblogs.com/klguang/p/4595599.html http协议概述 http://www.cnblogs.c原创 2017-09-11 20:21:50 · 566 阅读 · 0 评论 -
C++参考demo-dll
#ifndef _MYCODE_H_#define _MYCODE_H_#ifdef DLLDEMO1_EXPORTS#define EXPORTS_DEMO _declspec( dllexport )#else#define EXPORTS_DEMO _declspec(dllimport)#endifextern "C" EXPORTS_DEMO int Add (int a ,原创 2017-09-11 19:40:27 · 361 阅读 · 0 评论 -
C++参考demo-提取子串
// test0811.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <string>#include <iostream>using namespace std;int _tmain(int argc, _TCHAR* argv[]){ //找到h这个词,打印""之间的内容 string str = "abcdefgh原创 2017-09-11 19:39:39 · 201 阅读 · 0 评论 -
静态编译和动态编译(lib和dll)
静态编译lib所谓静态链接就是把函数或过程直接链接到可执行文件中,成为可执行程序中的一部分,当多个程序调用同样的函数时,内存里就会有这个函数的多个拷贝,浪费内存资源 生成lib文件,包含了函数索引以及实现,这个LIB会比较大生成和使用静态库 生成静态库 新建项目–win32项目–填写项目名–确定–下一步–应用程序类型:选择静态库 静态库项目没有main函数,也没有像dll项目中的dllmai原创 2017-09-18 18:41:12 · 10421 阅读 · 0 评论 -
c++实现域名解析
#include <Winsock2.h> #include <ws2tcpip.h> #include <iostream> using namespace std; #pragma comment(lib, "Ws2_32.lib") int main() { //使用Ws2_32.dll的初始化 WORD wVersionRequested = 0原创 2017-08-01 21:40:35 · 2227 阅读 · 0 评论 -
C++强制类型转换
static_cast最接近于C风格转换,但在无关类指针转换时,编译器会报错,提升了安全性; double d=3.14159265; int i = static_cast(d); dynamic_cast要求转换类型必须是指针或引用,且在下行转换时要求基类是多态的,如果发现下行转换不安全,dynamic_cast返回一个null指针,dynamic_cast总是认为void*之间的转换是...原创 2018-04-20 18:13:32 · 130 阅读 · 0 评论 -
超好用的网络抓包框架(Windivert)之三(实例一)
如果出现编译不通过,请尝试以下方法 1.程序要用管理员权限打开! 并且添加WinDivert头文件 2.添加以下代码:#pragma comment(lib, "winDivert.lib")#pragma comment(lib, "WS2_32.lib")3.在WinDivert-1.2.0-rc-MSVC下查找对应的文件,注意匹配64位和32位 这三个文件需要添加到exe文件同一目录原创 2017-08-01 21:36:21 · 6059 阅读 · 0 评论 -
vs基础设置和使用
vs设置在Release模式下调试的方法:1.工程项目上右键 -> 属性 2.c++ -> 常规 -〉调试信息格式 选 程序数据库(/Zi)或(/ZI), 注意:如果是库的话,只能(Zi) 3.c++ -> 优化 -〉优化 选 禁止(/Od) 4.连接器 -〉调试 -〉生成调试信息 选 是 (/DEBUG)原创 2017-10-21 13:31:25 · 613 阅读 · 0 评论 -
博文推荐
1.Dllmain的三个参数 http://blog.csdn.net/friendan/article/details/7659190原创 2017-08-01 21:39:15 · 245 阅读 · 0 评论 -
C++三种保护方式
保护方式public、protected 、private在c++中有两种使用方式。 1.类中的使用:保护类中的数据和方法 2.继承中的使用:保护基类中的数据和方法1.类中的使用//示例class A{public: int a;};public成员是公共成员,本类以及子类乃至类外都可以访问,是访问限制最少的成员。 protected 是保护成员,只允许在本类或者子类中才可以访原创 2017-03-24 00:00:54 · 4085 阅读 · 3 评论 -
内存对齐问题
// 内存对齐//编译默认对齐方式是4字节(32位系统)或者8字节(64)位系统,但是通过pragma pack可以自己定义内存的对齐方式#pragma pack(4) //对齐参数=4class TestB{public: int a; //第一个成员,放在[0,3]偏移的位置,(4=4,对齐参数=4, 从0开始到3) char a; //第二个成员,自身长为1,#prag...原创 2019-10-08 18:21:50 · 132 阅读 · 0 评论 -
C++获取时间
// ConsoleApplication5.cpp: 定义控制台应用程序的入口点。//#include "stdafx.h"#include <deque>#include <stdexcept>#include <string>#include <cstdlib>#include <cstdio>#include &..原创 2019-01-17 15:01:51 · 259 阅读 · 0 评论 -
深入浅出单实例SINGLETON设计模式
https://coolshell.cn/articles/265.html原创 2018-10-15 18:49:29 · 113 阅读 · 0 评论 -
python、lua
获取字符串大小 import sys m=u”ab” k=b”ab” l=”ab” print(m,type(m),sys.getsizeof(m),”|”,k,type(k),sys.getsizeof(k),”|”,l,type(l),sys.getsizeof(l))python参考资料 https://blog.csdn.net/raby_gyl/article/detai...原创 2018-07-11 18:44:49 · 260 阅读 · 0 评论 -
c++输入年月获取当月时间
int y,m; int days; printf(“input the year and month(like:2012 2):\n”); scanf(“%d%d”,&y,&m); switch(m) { case 1:case 3:case 5:case 7:case 8:case 10:case 12: days=31; break; ...原创 2018-07-11 18:40:24 · 928 阅读 · 0 评论 -
vmware共享文件夹和virtualbox共享文件夹
vmware共享文件夹和virtualbox共享文件夹 http://blog.csdn.net/kulala082/article/details/67635198 没有共享文件夹(挂载指令加-o nonempty) https://jingyan.baidu.com/article/c74d6000660b440f6b595d78.html virtualbox下win7共享文件夹...原创 2018-03-27 09:22:31 · 222 阅读 · 0 评论 -
qt-样式
QSS包含了一个样式规则序列,一个样式规则由一个选择器和声明组成,选择器指定哪些部件由规则影响,声明指定哪些属性应该在部件上进行设置。例如: QPushButton { color: red } 声明部分的规则是一个属性值对(property: value)列表,包含在花括号中,以分号分隔。例如: QPushButton { color: red; background-color: whi...原创 2018-03-27 09:22:03 · 115 阅读 · 0 评论 -
超好用的网络抓包框架(Windivert)之四(实例二)
6.1 ICMP原包出返回,原包入 功能介绍: 嗅探主机所有发出去的icmp数据包,丢弃并且返回一个与原数据包内容一样的数据包给主机。(主机通过ICMP发出数据包a,拦截a,将a改为发入的数据包,将a再发回主机 ) 设计思路: WinDivertOpen //1.开启 WinDivertHelperCheckFilter //2.检测过滤条件是否按照规格 ...原创 2017-08-01 21:33:36 · 3396 阅读 · 1 评论 -
超好用的网络抓包框架(Windivert)之二(语言)
1.1基本api WinDivertOpen //1.开启 WinDivertHelperCheckFilter //2.检测过滤条件是否按照规格 WinDivertRecv //3.接收原包 WinDivertHelperParsePacket //4.解析原包信息 WinDivertHelperCalcChecksums //5原创 2017-08-01 21:32:12 · 5266 阅读 · 0 评论 -
超好用的网络抓包框架(Windivert)之一(介绍)
一种网络抓包,修盖包的框架原创 2017-07-30 22:11:09 · 10406 阅读 · 3 评论 -
wstringstream、ofstream、ifstream——流(未完结)
1.wstringstreamwstringstream -》wstring //数据转换Std::wstringstream ss;Ss << “111”;Ss << “22”;Std::wstring cc = ss.str;2.ifstream 和ofstream读写一个结构体//要注意覆盖问题Struct A{};Struct A a;ofstream out;out.ope原创 2017-03-25 00:08:55 · 2035 阅读 · 0 评论 -
异常处理——一些注意事项(4)
1.Dump文件的分析Vs2012直接打开判断是否成功、windbg打开输入语句!Analyze –v分析2.注意事项:2.1 处理句柄问题时,同一pid获取不同的句柄值-注意 因为没有close 2.2 //这段代码很有价值#include <windows.h>#include <Dbghelp.h>#include <iostream>#include <tchar.h>原创 2017-03-25 00:01:52 · 423 阅读 · 0 评论 -
异常处理——异常函数之SetUnhandledExceptionFilter(父进程处理)(2)
1.本进程实现异常函数1.1 实例翻阅了好久的文献资料,终于让我找到这篇巨好的文章。 http://blog.csdn.net/vagrxie/article/details/4398721 异常处理与MiniDump详解(4) MiniDump 通过里面的例子,就可以实现一个简单的例子。以下我又整理了三段代码,详细介绍设置顶层异常函数。//代码一#include <string>#incl原创 2017-03-24 23:27:56 · 730 阅读 · 0 评论 -
异常处理——异常函数之SetUnhandledExceptionFilter(子进程处理)(3)
1.解决思路和注意事项1.1 Set顶层异常函数 1.2 建立函数 1.3 在函数里面createprocess子进程,参数传递pid给子进程,保存父进程错误信息结构体到两个二进制文件 1.4 子进程根据pid通过openprocess获得句柄,打开两个结构体保存的二进制文件,读入。minidumpwrite2.创建子进程//代码一#include<iostream>#include<st原创 2017-03-24 23:48:10 · 2476 阅读 · 0 评论 -
异常处理——异常处理简介之UnhandledExceptionFilter(1)
异常处理流程在软件开发过程中,总会遇到许许多多的bug。如果在开发过程中,出现bug异常,未处理,就会导致程序崩溃。崩溃了,系统会先自动先去处理,一般是UnhandledExceptionFilter这个函数在调试。//未处理异常示例*(int *)0 = 1 ; //语句错误,未处理一些处理异常的返回值 EXCEPTION_CONTINUE_SEARCH(0)(作为返回值,表示处理失败,系统继原创 2017-03-24 22:57:29 · 2731 阅读 · 0 评论 -
指针数组和引用
指针数组和引用引用:Effective C++引用的概念引用:就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。引用的声明方法:类型标识符 &引用名=目标变量名;如下:定义引用ra,它是变量a的引用,即别名。int a;int &ra=a;(1)&在此不是求地址运算符,而是起标识作用。(2)类型标识符是指目标变量的类型。(3)声明引用时,必须同时对其进行初始化原创 2017-03-30 23:55:49 · 895 阅读 · 0 评论