自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 资源 (16)
  • 收藏
  • 关注

原创 关于ZeroC Ice C++异步invoke,整合ProtoBuf对象

一步一步展开介绍ZeroC Ice如何使用async的invoke,如何用Ice直接序列化ProtoBuf的对象

2018-10-19 10:57:35 1426

原创 理解字节对齐问题--表格法

探究结构体的对齐问题,使得我们更好的理解结构体在内存中的布局。自定义字节对齐数值时,内存偏移计算默认情况下编译器会对结构体进行字节对齐,提高访问速度。形如下面的例子允许自定义“字节对齐数值”(这个词不一定准确哈):#pragma pack(4) //按4字节对齐typedef struct _Product{ int nId; string strName; ...

2018-06-19 22:54:16 380

原创 QDataStream处理数组或字符串

QDataStream提供的读写二进制数据的能力很强,使用也很方便,非常适合将自定义的数据类型进行序列化。但是在使用的过程中也有一些问题需要注意。QDataStream处理char数组考虑一下通过QDataStream将char数组输入到QByteArray中,一般网络报文序列化可能会遇到。1. 问题的产生char fileName[100];memset(fileNa...

2018-06-19 13:20:26 13836 4

原创 静态库依赖关系的一种情况

首先确定的一个概念:lib文件和obj文件都是源代码生成的中间文件,只不过lib文件可能是由多个obj文件集合而来。静态库是一个或多个obj文件的打包。最终都会链接到可执行程序中去。假设下面一种情况:应用程序TestCallLib依赖静态链接库TestLibB;而TestLibB又依赖静态链接库TestLibA。 静态库TestLibA的定义TestLibA是一个静态链接库,...

2018-05-14 15:07:59 4172

原创 关于C运行时库及其冲突的问题

什么是C运行时库每一个程序都会调用标准库的函数,最终都要拷贝一份标准库的实现到程序中,这样同一时刻内存中可能有许多份标准库的代码。微软出于效率的考虑把标准C库作为动态链接来实现。谈到静态链接的时候仍然把它叫做运行时库,是一个习惯说法。 运行时库是程序在运行时所需要的库文件,通常运行时库是以LIB或DLL形式提供的。C运行时库诞生于20世纪70年代,当时的程序多是单线程的,多任务或多线...

2018-05-14 15:00:37 988

原创 关于大小端模式,该怎么记忆

1.大与小,说的是什么大与小,实际上说的是位权值,也就是说字节顺序问题,是由数学中,自然数的书写模式的规律,扩展延伸类比而来的。 例如:        2018这个十进制多位自然数的书写,是从左到右的。        2018 = 2*1000 +

2018-03-22 13:52:48 1505 3

原创 C++减少过多if判断的一种思路

有时候if判断会写很多,代码写很长如果if判断的层次很简单,只是if-else这种结构,读起来不会觉得有多么困难,只是很长而已;麻烦的是有很多嵌套(当然这是可以优化的);优化的好,其实并不会太影响阅读;但对于有强迫症的人,if写太多,心理就是觉得不舒服。网上有很多利用设计模式的方法处理过多的if判断的的文章。只是要写很多类,构造函数什么的,麻烦!利用C++中的function,...

2018-02-26 11:44:56 7351

原创 使用RabbitMQ传输大文件,保证其完整性

最近计划用RabbitMQ传输文件,对于容量超过1G的大文件,肯定需要对文件进行分块传输;如果某一块丢失了,或者有损坏,必须有一种机制,通知发送方重新发送。Direct和Topic模式都可以用。下面是我的研习和设计思路。RabbitMQ本身提供的确认机制RabbitMQ通过Publish Confirm和Consumer Acknowledgement机制,让发送方和接收方分别与broker产生确认

2017-09-29 14:13:42 22252

原创 修改C#动态链接库

有时候我们有一个动态链接库,却找不到开发者,或者找不到以前的源代码了,而只要修改一个变量,就能使其适应新的环境;这种情况确实挺无奈的。C#编译的动态链接库其实可以试着修改的,前提是知道该修改什么首先准备ildasm.exe;ilasm.exe;ILSpy.exe3个程序 ildasm.exe在目录: c:\Program Files(x86)\Microsoft SDKs\Windows\v6

2017-09-15 16:36:48 996

原创 VS2010 Addin 插件添加菜单和命令

VS2015开始就已经不支持Addin插件了,替代的是VSPackage插件;也许是因为这个原因网上关于Addin的中文资料比较少。可是并不想学VSPackage开发,还是弄一个简单的吧。还是一点点的收集到了一些资料,真心觉得学习新知识不痛苦,痛苦的是没人请教,寻找资料的过程。关于使用C#语言开发VS Addin插件还是有一些的;不过都是在“Tools”菜单下添加一个命令,而不是如下图所示的

2017-09-13 17:01:37 4215

原创 理解COM和DLL技术

最近由于需要做一个Visual Studio的插件,所以看了《ATL开发指南》,对COM技术有一个简单的了解,稍作记录,资励。COM技术是我们知道COM有跨语言优势,便于升级维护,实现进程间调用甚至分布式调用。COM组件之间的通信是通过组件的接口来实现的,COM组件接口的实现是统一的,它采用的是虚函数表形式,表中包含了组件函数的一组指针,我们可以通过这组指针来获取我们想要通信的组件函数的内存地址。

2017-09-13 15:24:18 1874

原创 Golang开发环境LiteIDE编辑区配色方案

本配色方案基于Sublime Text2 theme,同时参考了VS Code配色,感觉还不错,如下是部分截图:将下面代码保存为XML文件,例如my.xml。 放在liteide\share\liteide\liteeditor\color目录下,打开IDE,“查看”菜单内部选择<?xml version="1.0" encoding="UTF-8"?> <style-scheme versi

2017-08-03 17:04:30 4621 1

原创 关于RabbitMQ性能问题的几点分析

目前对RabbitMQ的使用才刚刚开始,下面提出的问题,也许是由于对服务器的配置或者对客户端API还不了解导致的。欢迎斧正。一. 要避免流控机制触发服务端默认配置是当内存使用达到40%,磁盘使用达到50%,即启动内存报警,磁盘报警;报警后服务端触发流控(flow control)机制。一般地,当发布端发送消息速度快于订阅端消费消息的速度时,队列中堆积了大量的消息,导致报警,就会触发流控机制。

2017-03-27 12:07:38 23201 10

原创 QWT坐标刻度设置时的2个细节

QWT的坐标是有四个的,分别是QwtPlot::yRight,QwtPlot::yLeft,QwtPlot::xBottom,QwtPlot::xTop。设置左右两个纵坐标QWT的example中yRight和yLeft的刻度一般是相同的,如果想做成不一样的效果,如图箭头A所指是数字刻度和箭头B所指是逻辑刻度,就需要调用QwtPlot::setAxisScale来设置。例如:setAxisSca

2016-11-15 12:14:18 11362

原创 关于RabbitMQ-C入门使用需要注意的几个问题

RabbitMQ-C是AMQP通信协议的RabbitMQ实现的C语言接口;Java接口的文档倒是挺多的,C语言的很少,讨论的人也很少。在使用的过程中,我遇到了这几个坑:1.connection的句柄amqp_connection_state_t_不是线程安全的这第一个坑就是,当我们想开启5个线程,每个线程独立打开通道,独立声明交换机,共用一个socket时,出现的冲突。C语言版本打开一个连接后是用一

2016-10-31 15:31:13 10111 17

原创 关于C++对象引用的这种用法

特殊情况下,江湖大佬都是有替身的;替身帮真身做事,跟他很像;你对替身说的话,相当于对真身说,替身被杀死了,本尊却没有任何事。可能有这样一种情况,我没有使用指针,但很多地方都需要用到一个对象,例如:一棵树,我想获取到子结点,并对子结点进行赋值等;但是又不想因为拷贝,在内存中形成太多的备份。如果有很多对象,例如:A1-A20他们的成员变量,都是某一个对象X的引用,那么外部通过这一系列对象,可以在不知道X

2016-09-05 18:23:31 2036

原创 关于QT UDP组播的几个问题

UDP组播时最好不要提客户端/服务端的概念,而是提发送端/接收端的概念,避免出现逻辑理解混乱。大家在使用QT UDP时,可能会出现下面的情况:1.接收不到数据1.1 代码不对我看有些文章会这样写:m_udpSocket = new QUdpSocket();m_udpSocket-&amp;amp;gt;bind(QHostAddress::AnyIPv4,8083,QUdpSocket::ShareAddress);

2016-08-09 16:24:14 14201 8

原创 关于.Pro文件中引入源文件的不同写法,导致QMake无法生成正确的Makefile文件的错误

缘起今天用Qt Creator 3.4.1 打开一个很老的工程,还是QT 4.5.2的,VS2008版本编辑的;没有语法错误,却在链接时提示"LNK2019: 无法解析的外部符号 "public: static class Log * __cdecl Log::instance(void)" (?instance@Log@@SAPAV1@XZ),该符号在函数 _main 中被引用"的错误。

2016-05-06 11:35:19 2457

原创 关于QT的正则表达式类QRegExp的细节问题

想要匹配格式为“YYYY.MM.DD HH:mm:ss.zzz”的时间,关注点是符号“.”的使用,因为正则表达式的语法中“.”正好是特殊符号,代表可以匹配任何非\n字符。而我们的时间格式中“.”就是代表一个点,因此需要转意。 方式一:直接写在代码里QString保存^((([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}

2016-05-04 16:13:09 1302

原创 Win7安装golang开发环境--备忘录

首次接触golang,很多东西不熟悉,Git也没有安装。1 安装golang1.1 下载golang我是在Golang中国的下载频道下载的golang1.6。链接如下:http://www.golangtc.com/download我选择了64位的 go1.6.windows-amd64.msi这个文件,安装后GOROOT和path等环境配置自动完成。 我们只需要另行配置GOPATH即可。

2016-04-08 11:34:44 2948

原创 解决通过CHttpFile获取远程图片,图片长度取得不准确的问题

采用CHttpFile和CInternetSession类去获取图片,如下图中红色方框中所示的方式,并不能每次都能获取到正确的远程图片长度,我的测试工控机,就始终不能获取到图片,原因可能是CHttpFile类是直接去获取图片,通过网络获取图片需要时间,因此会造成GetLength()函数不能获取到正确的数据,使用一个循环去等待也没有解决该问题,也许是计算不准确。

2014-08-12 19:44:59 2254

原创 CStatic子类化解决背景透明,文本重叠,刷新闪烁问题

由于是很少使用VS2008的MFC,遇到了很多麻烦,其实都是很初级的;但是我还是想做点记录,以示对自己工作的鼓励,同时也是留个纪念,因为随着微软政策的变化,以后MFC的程序将不会是趋势了,而我也有意从事Android平台的开发,所以不太可能做MFC程序了。

2014-08-12 19:16:21 7887

原创 VS2008自动添加ActiveX插件的MFC类

VS2008中添加ActiveX的MFC类,不同的方式,自动生成的类文件是不同的。我所用到的视频插件和MSCOMM插件的MFC类的添加方式相同。下面我将

2014-08-12 18:50:14 2795

原创 上传资源勘误

我上传的代码类资源 http://download.csdn.net/detail/tom06/7742149今天早上我

2014-08-12 10:45:50 674

最简单的生成Qt Doc文档的小工程

入门学习用,可以理解到Qt Doc文件如何生成,需要哪些配置文件,这些配置文件起什么作用,如何生成首页并链接相关类。 TestQDoc.qdocconf内部注释详细。 压缩包内部有本小工程的详细说明文档。

2019-04-11

利用QTest进行单元测试的Demo

1.对普通应用程序中的类方法进行单元测试\n 2.对DLL的内部非导出类的方法进行单元测试

2019-01-31

仿搜狗网址导航简化版,格式化代码增强可读性,添加部分注释

1. 这个是基于网上的一个仿搜狗网址导航v2.1版裁剪的,这个版本仿的是搜狗导航2014版; 2. 我裁去了多余功能,电商链接,使其更清爽;格式化html、css、js代码使其可读,并添加了部分注释; 3. 裁剪后不能直接商业使用哈,只是给C++程序员了解Web开发用的; 4. 有兴趣可以下来玩玩;

2018-11-29

Qt控件拖拽最简实践

Qt拖拽的基本实践,从QListWidget上拖动一个Item,拖的过程中绘制矩形框,拖到目标Widget中,创建Button,该Button在Widget内部可随意拖动; 这个例子主要是理解Qt的拖拽事件怎么使用,事件怎么被接受,数据怎么传递

2018-11-28

Ice-1.3.0_分布式应用(中文版)

版本有点老,但是拿来学习没问题; 而且其他人不是描述不清,就是分太高

2018-09-28

在win7下生成dump文件的头文件

只是一个头文件,加入工程即可,文件末尾有宏定义,在工程的main函数中,使用该宏,崩溃时自动生成CrashDumpFile.dmp文件。 目前我在VS2013下编译通过。

2018-07-12

小集合:CPP和C#调用Dll、AES使用,、调用Python脚本、SHA和MD5

详情见内部说明文档。 1.CPP和C#分别调用DLL,获取DLL所在绝对路径 2.CPP宽字符和普通字符(字符串)互转 3.C#调Python脚本 4.CPP使用Ice::Util中的timer 5.CPP使用OpenSSL进行AES算法的ECB加解密 6.C#计算SHA和MD5值

2018-07-12

分别在QLabel和QWidget上绘制图片的示例

分别在QLabel和QWidget上绘制图片,并且图片能够跟随界面而放大缩小; 其中QLabel的方式有点特殊,正常情况下直接布局在QWidget中,图片无法缩小,只能放大和还原;这里采用变通的方式处理。

2018-06-12

验证QList线程安全性的小程序

申明:不是原创,不是原创,只是转载。 这是一个来自网上的例子 https://blog.csdn.net/conquerwave/article/details/50962548 (conquerwave的专栏) 用于测试QList的线程安全性,因原作者只给出源代码,没有给出测试结果,这里生成一个QT工程,打开即可编译,内部有ReadME.txt,简要说明

2018-04-13

VS2010 Addin插件学习小Demo C++版本

VS2010工程源代码,一个学习小Demo,不需要第三方支持,添加了一个菜单两个命令. 我的专栏http://blog.csdn.net/tom06写了一篇博客,简单介绍了一下,有运行截图

2017-09-13

自定义QTableView的表头QHeaderView实现多行表头

A.详情见readme.txt 1.自定义了一个表格View(TcTableView),支持继承重载相关虚函数, 2.TcTabelView支持设置多行横向表头(默认2行), 3.可以添加多张表格,每个表格是独立的,它们都有属于自己的自定义表头。 4.表头的右键操作我是自己写的,也可以用原例的方式,不过要复杂一点。 5.每一张表,一个tab,tab可以鼠标左击关闭

2016-11-14

两个实现MFC导入PNG图片的类的测试DEMO

1.本DEMO程序引用了来自网上的两个继承自CButton的派生类,以实现在MFC中载入PNG透明图片的需求. 2.CGdipButton来源于Codeporject;CPngButton来源于CSDN上的两个同名类,我进行了简单融合. 3.这两个类本质上都使用GDI+技术,CGdipButton倾向于使用两张不同的图片,来反映按钮的变化;而CPngButton倾向于将几个图像集合在一个图片文件中,分块读取. 4.在使用的过程中,当以模态对话框打开第一个对话框时,点击确定退出会出现地址访问冲突,是由于该确定按钮所导入的PNG图片的指针内存被破坏导致,我还没想到解决办法

2014-10-23

解析ini和xml两种配置文件的MFC小DEMO,build by 唐太咸

1.解析获取INI文件中的配置,并存入一个容器类中,同时显示在MFC的表格控件中 2.解析带参数的XML文件,并存入一个容器,同时显示在MFC的表格控件上 3.解析不带参数的XML文件,并存入一个容器,同时显示在MFC的表格控件上 4.XML解析使用CMarkup开源代码

2014-10-11

使用IPicture接口显示图片的一个MFC小程序,整理修改by唐太咸

本MFC小程序实现了下面3个功能 1.从本地读取文件,并显示在界面上 2.通过CHttpFile,CInternetSession类打开一个URL获取图片,并保存在本地, (随便在网上找个URL替换就可以) 3.从本地读取一幅图片,然后按照指定尺寸另存一份

2014-09-22

C++回调函数的2个DEMO程序,整理修改by唐太咸

这里面有两个运用回调函数的DEMO程序 1.其中tcCallBack的作用是希望通过将Receiver类的成员函数注册到Call中, Call类的对象在合适的时候调用该回调函数实现运算或者传值。需要注意的是本DEMO需要提前在Call中声明回调函数的指针,返回值,参数以及它们的类型 2.另外一个tcFunctionTemplate是使用std::function模板和std::bind,支持全局和类成员函数作为回调函数,我在VS2010下编译通过

2014-09-22

MFC的CStatic子类化,解决背景透明,文本重叠,刷新闪烁

两个CStatic子类,良好的解决了背景透明,动态设置文本时,防止文本重叠,防止刷新闪烁,我在PC和工控机上测试效果很不错,网上很多人的分享并没有解决我的问题,这两个类是CodeProject上面的,只是我对其做了修改,修改部分DEMO中有注释,利用我的使用,所以就不要积分了,我觉还是很有参考价值的

2014-08-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除