C++
New QObject
电力+码农
展开
-
LPCSTR CONST 指针
今天用指针调用函数,原创 2014-10-28 17:21:46 · 840 阅读 · 1 评论 -
WinPcap发送接收裸包(二)
上一篇说了如何发送裸包,下面看如何接收数据包。代码很简单,就不多介绍了。#ifdef _MSC_VER/* * we do not want the warnings about the old deprecated and unsecure CRT functions * since these examples can be compiled under *nix as well原创 2015-01-28 13:01:40 · 2678 阅读 · 0 评论 -
WinPcap发送接收裸包(一)
需求:在windows平台上实现和硬件的通信,环境局域网,实时性要求比较高。设计:优先考虑在数据链路层进行数据的处理,采用自定义裸包的方式肯定是最好的,速度效率最高了。首先想到的是socket,TCP或者UDP,不过这个都是传输层的协议了,不考虑。还有一种是用raw socket实现,但是也不够好,它只能到网络层。最终选择了winpcap。下面就将使用winpcap实现数据裸包原创 2015-01-28 11:00:33 · 4900 阅读 · 7 评论 -
基于UDP广播的局域网聊天工具
最近项目在做一个基于UDP模式的通信程序,考虑到项目的需求有一对多的需要,所以采用socket UDP广播模式进行数据通信。网上了解了一下知道这种模式也是目前QQ采用的方式,于是为了更好的理解socket UDP,觉得先花点时间做一个局域网群聊的小工具。先把效果图展示一下。经过测试发现能够支持三个以上的人共同聊天,至于上限是多少没去测过。在这里特别容易出原创 2015-01-21 15:00:57 · 2751 阅读 · 1 评论 -
socket编程笔记
对于套接字编程来说,原创 2014-11-03 11:05:40 · 639 阅读 · 0 评论 -
C++ 继承中的一个小知识点
背景:有三个界面类,类CA、CB、CBase;其中CBase类继承自QDialog类,CA、CB类继承自CBase类。首先我实例化一个CA类,那么它会实例化一个CBase基类;如果我在实例化CB类的时候,传进去CB(CA)那么,它只会实例化CB类,而不会实例化一个CBase类。应用场景:在进行两个界面覆盖的时候,要单独实例化,CA、CB才可以,否则会出现问题。原创 2015-09-18 09:57:20 · 616 阅读 · 0 评论 -
tinyxml工具创建XML的一个小坑
问题描述:最近在用tinyxml保存XML文件的时候发现一个问题,程序保存几次XML格式的配置文件以后,就会发现配置文件格式出现问题了,不符合XML规范了。具体为多出了一部分内容。用tinyXML解析没有问题,但是用其他的就会出现问题,非常奇怪。解决方案:经过分析发现,原来tinyXML保存文件的时候是以读写的方式打开,而不是一般采用新建的方式。所以,将QIODevice::ReadWrit...原创 2019-07-08 22:51:29 · 392 阅读 · 0 评论 -
Apache PHP MySQL 加 C++环境配置
作为一个传统的电力公司,软件主要在Windows PC上或者嵌入式设备里面。现在想搭建一个云服务器进行一些数据的长期存储和读取分析,而工作中主要是使用Qt、C++、C进行程序开发,对互联网那一套不是很熟。通过了解,Apache PHP MySQL这个方案比较能够满足比较成熟稳定,但是对PHP又不熟,重新开始学,觉得太麻烦、成本太高,所以决定用PHP负责接口,Qt负责业务处理。整个流程如下:客户...原创 2018-02-24 13:17:57 · 429 阅读 · 0 评论 -
C++ 用户自定义类型
定义一个类CDataNode,这个类表示一个树形数据结构中的一个节点。遍历树形结构判断节点是否为空的时候,想直接用这样的方式:CDataNode node;if(node){}else{}实现这个功能的方法,其实就是用户自定义类型。定义一个能够用if()直接进行判断的数据类型:int bool //.h文件中class CDataNode{public:CDataNode();ope原创 2015-10-13 13:29:57 · 916 阅读 · 0 评论 -
protobuf用法总结
protobuf是Google公司出的一个的序列化工具,用了一段时间,感觉很不错。 我主要将它用于程序相关的配置信息进行保存读取。 使用方法:下载protobuf源码,编译生成相关的lib文件。下面给出我已经编译好的lib和头文件,并且包含一个生成头文件和源文件的批处理文件,使用起来十分方便;下载地址编辑XXX.proto文件,将需要的结构体进行定义package conf;messag原创 2015-09-23 14:31:10 · 3047 阅读 · 0 评论 -
C++ 回调函数的用法
首先说一下我的需求:设计一个MMS客户端的动态库,给应用去调用。动态库从网络上接收到消息(报告)以后,需要通知应用,让应用更新数据。这种情况,回调函数能够满足我的需求。这里先说一下我对回调函数的理解,就结合上面的需求来说,动态库需要将一些消息通知应用,那么怎么通知了?通过调用应用的一个函数,动态库调用应用的函数的时候,就会将参数值传递给这个函数,那么应用就可以在这个函数中根据传递过来的参数值,进行自原创 2015-08-11 09:42:14 · 1345 阅读 · 0 评论 -
pugixml工具简单介绍
做智能变电站方面的东西,对于XML(SCD)文件的解析是无法避免的,最近使用了pugixml这个开源的解析工具,发现真的是太好用了。吸引我的地方主要以下几点:1、装载速度很快。比C++语言写的timyxml快很多,比C#里面的xml解析工具也快很多;2、C++编写,支持跨平台,同时支持unicode编码,支持中文;3、以源代码的方式提供,只有三个文件:pugiconfig.hpp、pugix原创 2015-05-09 18:05:25 · 3298 阅读 · 0 评论 -
C语言二进制和float、int类型转换
最近工作需要用到float型的数据和二进制之间的转换,网上提到了一些方法,比较多的就是先分析float型数据在内存中的存放方式,然后根据IEEE标准进行转换。 个人觉得还是有点麻烦,看到其中有一种方法,感觉很精妙,记录下来,方便以后查看。原创 2015-03-13 16:03:16 · 6966 阅读 · 4 评论 -
位域
位域有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位。例如在存放一个开关量时,只有0和1 两种状态, 用一位二进位即可。为了节省存储空间,并使处理简便,C语言又提供了一种数据结构,称为“位域”或“位段”。所谓“位域”是把一个字节中的二进位划分为几个不同的区域, 并说明每个区域的位数。每个域有一个域名,允许在程序中按域名进行操作。 这样就可以把几个不同的对象转载 2015-01-26 10:07:13 · 490 阅读 · 0 评论 -
C语言printf
1.调用格式为 printf("格式化字符串>", 参量表>); 其中格式化字符串包括两部分内容:一部分是正常字符,这些字符将按原样输出;另一部分是格式化规定字符,以"%"开始,后跟一个或几个规定字符, 用来确定输出内容格式。参量表是需要输出的一系列参数,其个数必须与格式化字符串所说明的输出参数个数一样多,各参数之间用","分开,且顺序一一对转载 2015-01-26 09:18:58 · 598 阅读 · 0 评论 -
C/C++基本数据类型
学了C然后C++,然后MFC/Windows,然后是C#,其中数据类型很多,由基本类型衍生的typedef类型也N多。熟知基本数据类型是我们正确表达实际问题中各种数据的前提,因此我分类总结了一下C/C++/Windows /C#基本数据类型,以便日后查阅。 ANSI C/C++基本数据类型:说明: (1)类型修饰符signed和unsigned用于修饰字转载 2015-01-04 09:28:13 · 929 阅读 · 0 评论 -
回调函数的理解
函数指针的原创 2014-11-11 11:17:52 · 679 阅读 · 0 评论 -
raw socket数据发送接收UDP
利用raw socket发送和接收UDP数据,直接给出几个可运行的实例,方便以后用到。raw socket数据发送接收UDP,可运行实例下载地址:点击打开链接winpcap自定义裸包发送和接收实例下载:点击打开链接原创 2015-01-28 13:23:06 · 1655 阅读 · 0 评论