
随手记
雨田嘟嘟
这个作者很懒,什么都没留下…
展开
-
x_str_to_struct not declared in this scope
#include "x2struct/x2struct.hpp"....error: ‘x_str_to_struct’ was not declared in this scope x_str_to_struct(*obj, val);这个问题不要怀疑是否因为没有引用头文件导致的问题了。这个是要转换的结构体里面没有添加XTOSTRUCT 导致。......原创 2020-09-16 15:19:08 · 420 阅读 · 3 评论 -
x2struct rapidjson
项目重构,序列化成json字符串,其中用到rapidjson,据说目前性能最好的json工具。RapidJSON是腾讯开源的一个高效的C++ JSON解析器及生成器,它是只有头文件的C++库。RapidJSON 是一个 C++ 的 JSON 解析器及生成器。它的灵感来自RapidXml。RapidJSON 小而全。它同时支持 SAX 和 DOM 风格的 API。SAX 解析器只有约 500 行代码。 RapidJSON 快。它的性能可与strlen()相比。可支持 SSE2/SSE...原创 2020-06-05 14:59:01 · 1512 阅读 · 0 评论 -
dot 学习笔记
deepin上可以用sudo apt-get install xdot 安装转自 http://liyanrui.is-programmer.com/posts/6261.htmldot 是一种绘图语言,它可以方便你采用图形的方式快速、直观地表达一些想法,比如描述某个问题的解决方案,构思一个程序的流程,澄清一堆貌似散乱无章的事物之间的联系……等等。总之,当你打算使用铅笔在纸上乱画一些圈圈框框并用一些带箭头的线将它们联系起来的时候,不妨考虑一下使用 dot 来完成这个工作。安装do..转载 2020-06-01 19:13:06 · 492 阅读 · 0 评论 -
shell批量改名
前言本文主要给大家介绍了关于Linux shell用sed批量更改文件名的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。示例去除特定字符目标:将 2017-01-01.jpg、2018-01-01.jpg 改为 20170101.jpg、20180101.jpg方法:将所有 - 替换为空?1234转载 2018-01-10 15:40:09 · 2771 阅读 · 0 评论 -
c++文件读写 fstream
在看C++编程思想中,每个练习基本都是使用ofstream,ifstream,fstream,以前粗略知道其用法和含义,在看了几位大牛的博文后,进行整理和总结:这里主要是讨论fstream的内容:[java] view plain copy#include ofstream //文件写操作 内存转载 2018-02-06 09:31:14 · 1383 阅读 · 0 评论 -
gdb test
gdb testb mainb 8b hello.cpp:9b hello.cpp:addtb 9r (可以带参数)cnsbtinfo binfo localinfo argsinfo displayll hello.cpp:9显示 表达式显示 变量p iprint/x iprint原创 2018-02-06 09:32:35 · 421 阅读 · 0 评论 -
查看磁盘
使用 df 命令来找出插入的 USB 设备名usb设备是sdbdf查看插入系统里的每一个设备及对应的挂载点,检查 Linux 系统磁盘空间使用情况:[root@localhost dev]# df -hFilesystem Size Used Avail Use% Mounted on/dev/sda3 18G 7.5G原创 2018-02-06 09:33:05 · 363 阅读 · 0 评论 -
fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
1>LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏1>1>生成失败。莫名其妙,在其他机器上这么做可以正常变编译,在自己电脑上就不行了(最近重装了vs),就是为了改个exe的图标,添加了rc文件和resource.h添加资源- 导入icon,选中icon 默认为IDI_ICON1. vs会自动生成rc文件和resource.h文...原创 2018-02-13 10:17:18 · 649 阅读 · 0 评论 -
iocp
原文链接http://blog.csdn.net/piggyxp/article/details/6922277目录:一、为什么选用完成端口二、完成端口的概念三、完成端口的基本流程四、实现详解—主线程五、实现详解—工作者线程 一、为什么选用完成端口网络通信方式大致有以下几种:同步方式:所有操作在一个线程内顺序执行,则通信操作会阻塞同一线程其他操作。同步+多线程方式:服务器端为每一个连入的客户端建立...转载 2018-03-12 14:42:49 · 309 阅读 · 0 评论 -
Windows下底层数据包发送实战
最近发现IPPROTO_IP的SOCK_RAW不能够获取tcp包,只能获取到udp包。觉得很奇怪。查了下。原来window限制了raw socket的功能。 a)无法使用Raw Socket发送TCP包。 b)无法使用Raw Socket发送源IP地址不正确的UDP包。(意思是不能用它伪造源地址) c)无法在一个类型为IPPROTO_TCP的Raw Socket上调...转载 2018-03-14 10:26:23 · 2265 阅读 · 0 评论 -
nfs
几个月前用nfs当作kubernetes集群的持久化存储卷,nfs很简单,这几个命令还是要记一下。这里记录下。一、服务端/etc/exportsexportfs -rv (全部重新export一次!)exportfs -au (全部都卸载了)NFS服务器的共享哪些目录、谁能访问、权限、同步异步方式通过/etc/exports这个文件进行,设定格式如下:原创 2018-01-09 14:39:59 · 239 阅读 · 0 评论 -
运算符的优先级、结合性、操作数的求值顺序
一.运算符的优先级在C++ Primer一书中,对于运算符的优先级是这样描述的: Precedence specifies how the operands are grouped. It says nothing about the order in which the operands are evaluated.意识是说优先级规定操作数的结合方式,但并未说明操作数的计算顺序。举个例子:6+转载 2016-06-02 15:09:05 · 3790 阅读 · 3 评论 -
zigzag数组
#include<stdio.h>#include<iostream>using namespace std;void getzigzag(int N){ int s,i,j,squa; //分配内存 int **a = (int**)malloc(N*sizeof(int)); if(a==NULL) return; for(i =原创 2016-06-08 10:41:45 · 331 阅读 · 0 评论 -
c宏定义
#define FIND(struc,a) (unsigned int)&(((struc*)0)->a)//(struc*)0表示把0强制转化为struc * 型指针指向的地址#define SECOND_PER_YEAR (60*60*24*356)UL//因为16位机器上int 将溢出,加上UL#define MIN(a,b) ((a)<(b)?(a):(b))//注意加括原创 2016-06-03 08:59:35 · 322 阅读 · 0 评论 -
指针
1在函数中给指针分配内存注意内存地址能否正确的传回指向指针的指针返回指针地址2函数返回指针或内存地址注意该内存在函数返回后是否会被释放char a[] = “what”和char *a = “what”的区别一个是局部分配内存,一个在全局分配内存。3指针的加减法注意结果对sizeof(指针类型)做除法原创 2016-06-03 15:41:44 · 286 阅读 · 0 评论 -
__declspec
在解决属性页字体问题时,抽空研读了一下解决方案代码,在看到CPropertyPage有个成员m_psp的定义时,有点晕了,从来没见的C++语法: __declspec(property(get=GetPSP)) PROPSHEETPAGE m_psp; 经过查资料搞明白了,这是微软C++的定义,也只能在VC++中使用。并且__declspec关键字还有很多其他有意思的用法,记录下来以备查阅。转自转载 2016-09-20 11:42:33 · 473 阅读 · 0 评论 -
画图库
记录下使用到的绘图库MFC下使用了pgl( plot graph library) 链接 http://www.codeproject.com/Articles/1546/Plot-Graphic-LibraryQT下使用了QcustomPlot、很好很强大 链接 http://blog.csdn.net/czyt1988/article/details/10143141原创 2016-10-27 16:46:31 · 460 阅读 · 0 评论 -
HeapCreate
每个进程都有个默认堆,在main函数入口之前CRT又创建了一个C运行时堆。 当用new来分配内存时候,实际上是在运行时堆上分配内存。 默认系统为每一个进程都分配一个Heap,可以使用GetProcessHeap取得,其句柄。但是这个堆,是不允许程序自己释放,也就是不允许Destroy。 当用LocalAlloc或是GlobalAlloc分配内存时是在进程默认堆上分配的。在某些应用场合,可能会在原创 2016-10-28 10:02:29 · 900 阅读 · 0 评论 -
curl post get 长度限制
看到一篇关于 get和post长度限制的博客, http://blog.chinaunix.net/uid-26602509-id-4495786.html正好考虑get的长度问题,在此记录其中一部分内容 Http Get和POST方法提交的数据大小长度并没有限制,HTTP协议规范没有对URL长度进行限制。这个限制是特定的浏览器及服务器对它的限制。1、首先即使有长度限制,也是限制的是整个 URL转载 2017-09-25 16:54:02 · 10005 阅读 · 0 评论 -
D8016 “/ZI”和“/Gy-”命令行选项不兼容
vs2017 调试中出现上述问题,需要改变/ZI命令行选项 或者 /Gy命令行选项, 进入“项目”–>“属性”–>“C/C++ –>“常规”–>“调试信息格式”–>选择“程序数据库(/Zi)”或“无” 或者 –>“代码生成”–>“启用函数集链接”–>选择“是 (/Gy) 或者两个都改 如果遇到其他的命令行选项不兼容,类似于上面到“C/C++”目录下的各个选项中修改。原创 2017-08-31 15:48:15 · 3470 阅读 · 0 评论 -
WriteHuge不是CFile的成员
VC6中的CFile类中有ReadHuge()函数和WriteHuge()函数VS版本的CFile类中有Read()函数和Write()函数用VS打开vc6的工程文件时,需要将代码中的ReadHuge换成Read,将WriteHuge换成Write。原创 2017-08-31 15:53:41 · 984 阅读 · 0 评论 -
explicit 隐式类类型转换
C++ 隐式类类型转换 《C++ Primer》中提到:“可以用 单个形参来调用 的构造函数定义了从 形参类型 到 该类类型 的一个隐式转换。”这里应该注意的是, “可以用单个形参进行调用” 并不是指构造函数只能有一个形参,而是它可以有多个形参,但那些形参都是有默认实参的。那么,什么是“隐式转换”呢? 上面这句话也说了,是从 构造函数形参类型 到 该类类型 的一个编译器的自动转换。下面通过代码来看转载 2017-09-27 19:15:47 · 456 阅读 · 0 评论 -
qt中使用pthread的undefined错误
pthread的库不是Linux系统的库,所以在使用gcc或g++进行编译的时候要加上-lpthread 如g++ -o test main.cpp -lpthread在qt中使用时也要将库添加进去,如果不添加会出现undefined reference错误。如下:/home/qt-project/First_qt/main.cpp:18: error: undefined reference t原创 2017-10-19 14:44:31 · 2377 阅读 · 0 评论 -
常用数据结构
1 数组在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类数据元素的集合称为数组。在C语言中, 数组属于构造数据类型。一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。因此按数组元素的类型不同,数组又可分为数值数组、字符数组、指针数组、结构数组等各种类别。2栈是只能在某一端插入和删除的特殊线性表。它按照先进后出的原则存储数据,先进原创 2016-05-20 16:57:46 · 316 阅读 · 0 评论