- 博客(24)
- 资源 (16)
- 收藏
- 关注
原创 关于ZeroC Ice C++异步invoke,整合ProtoBuf对象
一步一步展开介绍ZeroC Ice如何使用async的invoke,如何用Ice直接序列化ProtoBuf的对象
2018-10-19 10:57:35
1562
原创 理解字节对齐问题--表格法
探究结构体的对齐问题,使得我们更好的理解结构体在内存中的布局。自定义字节对齐数值时,内存偏移计算默认情况下编译器会对结构体进行字节对齐,提高访问速度。形如下面的例子允许自定义“字节对齐数值”(这个词不一定准确哈):#pragma pack(4) //按4字节对齐typedef struct _Product{ int nId; string strName; ...
2018-06-19 22:54:16
444
原创 QDataStream处理数组或字符串
QDataStream提供的读写二进制数据的能力很强,使用也很方便,非常适合将自定义的数据类型进行序列化。但是在使用的过程中也有一些问题需要注意。QDataStream处理char数组考虑一下通过QDataStream将char数组输入到QByteArray中,一般网络报文序列化可能会遇到。1. 问题的产生char fileName[100];memset(fileNa...
2018-06-19 13:20:26
14760
4
原创 静态库依赖关系的一种情况
首先确定的一个概念:lib文件和obj文件都是源代码生成的中间文件,只不过lib文件可能是由多个obj文件集合而来。静态库是一个或多个obj文件的打包。最终都会链接到可执行程序中去。假设下面一种情况:应用程序TestCallLib依赖静态链接库TestLibB;而TestLibB又依赖静态链接库TestLibA。 静态库TestLibA的定义TestLibA是一个静态链接库,...
2018-05-14 15:07:59
4600
原创 关于C运行时库及其冲突的问题
什么是C运行时库每一个程序都会调用标准库的函数,最终都要拷贝一份标准库的实现到程序中,这样同一时刻内存中可能有许多份标准库的代码。微软出于效率的考虑把标准C库作为动态链接来实现。谈到静态链接的时候仍然把它叫做运行时库,是一个习惯说法。 运行时库是程序在运行时所需要的库文件,通常运行时库是以LIB或DLL形式提供的。C运行时库诞生于20世纪70年代,当时的程序多是单线程的,多任务或多线...
2018-05-14 15:00:37
1072
原创 关于大小端模式,该怎么记忆
1.大与小,说的是什么大与小,实际上说的是位权值,也就是说字节顺序问题,是由数学中,自然数的书写模式的规律,扩展延伸类比而来的。 例如: 2018这个十进制多位自然数的书写,是从左到右的。 2018 = 2*1000 +
2018-03-22 13:52:48
1622
1
原创 C++减少过多if判断的一种思路
有时候if判断会写很多,代码写很长如果if判断的层次很简单,只是if-else这种结构,读起来不会觉得有多么困难,只是很长而已;麻烦的是有很多嵌套(当然这是可以优化的);优化的好,其实并不会太影响阅读;但对于有强迫症的人,if写太多,心理就是觉得不舒服。网上有很多利用设计模式的方法处理过多的if判断的的文章。只是要写很多类,构造函数什么的,麻烦!利用C++中的function,...
2018-02-26 11:44:56
7582
原创 使用RabbitMQ传输大文件,保证其完整性
最近计划用RabbitMQ传输文件,对于容量超过1G的大文件,肯定需要对文件进行分块传输;如果某一块丢失了,或者有损坏,必须有一种机制,通知发送方重新发送。Direct和Topic模式都可以用。下面是我的研习和设计思路。RabbitMQ本身提供的确认机制RabbitMQ通过Publish Confirm和Consumer Acknowledgement机制,让发送方和接收方分别与broker产生确认
2017-09-29 14:13:42
23308
原创 修改C#动态链接库
有时候我们有一个动态链接库,却找不到开发者,或者找不到以前的源代码了,而只要修改一个变量,就能使其适应新的环境;这种情况确实挺无奈的。C#编译的动态链接库其实可以试着修改的,前提是知道该修改什么首先准备ildasm.exe;ilasm.exe;ILSpy.exe3个程序 ildasm.exe在目录: c:\Program Files(x86)\Microsoft SDKs\Windows\v6
2017-09-15 16:36:48
1084
原创 VS2010 Addin 插件添加菜单和命令
VS2015开始就已经不支持Addin插件了,替代的是VSPackage插件;也许是因为这个原因网上关于Addin的中文资料比较少。可是并不想学VSPackage开发,还是弄一个简单的吧。还是一点点的收集到了一些资料,真心觉得学习新知识不痛苦,痛苦的是没人请教,寻找资料的过程。关于使用C#语言开发VS Addin插件还是有一些的;不过都是在“Tools”菜单下添加一个命令,而不是如下图所示的
2017-09-13 17:01:37
4342
原创 理解COM和DLL技术
最近由于需要做一个Visual Studio的插件,所以看了《ATL开发指南》,对COM技术有一个简单的了解,稍作记录,资励。COM技术是我们知道COM有跨语言优势,便于升级维护,实现进程间调用甚至分布式调用。COM组件之间的通信是通过组件的接口来实现的,COM组件接口的实现是统一的,它采用的是虚函数表形式,表中包含了组件函数的一组指针,我们可以通过这组指针来获取我们想要通信的组件函数的内存地址。
2017-09-13 15:24:18
2006
原创 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
4724
1
原创 关于RabbitMQ性能问题的几点分析
目前对RabbitMQ的使用才刚刚开始,下面提出的问题,也许是由于对服务器的配置或者对客户端API还不了解导致的。欢迎斧正。一. 要避免流控机制触发服务端默认配置是当内存使用达到40%,磁盘使用达到50%,即启动内存报警,磁盘报警;报警后服务端触发流控(flow control)机制。一般地,当发布端发送消息速度快于订阅端消费消息的速度时,队列中堆积了大量的消息,导致报警,就会触发流控机制。
2017-03-27 12:07:38
23569
9
原创 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
12224
原创 关于RabbitMQ-C入门使用需要注意的几个问题
RabbitMQ-C是AMQP通信协议的RabbitMQ实现的C语言接口;Java接口的文档倒是挺多的,C语言的很少,讨论的人也很少。在使用的过程中,我遇到了这几个坑:1.connection的句柄amqp_connection_state_t_不是线程安全的这第一个坑就是,当我们想开启5个线程,每个线程独立打开通道,独立声明交换机,共用一个socket时,出现的冲突。C语言版本打开一个连接后是用一
2016-10-31 15:31:13
10293
17
原创 关于C++对象引用的这种用法
特殊情况下,江湖大佬都是有替身的;替身帮真身做事,跟他很像;你对替身说的话,相当于对真身说,替身被杀死了,本尊却没有任何事。可能有这样一种情况,我没有使用指针,但很多地方都需要用到一个对象,例如:一棵树,我想获取到子结点,并对子结点进行赋值等;但是又不想因为拷贝,在内存中形成太多的备份。如果有很多对象,例如:A1-A20他们的成员变量,都是某一个对象X的引用,那么外部通过这一系列对象,可以在不知道X
2016-09-05 18:23:31
2069
原创 关于QT UDP组播的几个问题
UDP组播时最好不要提客户端/服务端的概念,而是提发送端/接收端的概念,避免出现逻辑理解混乱。大家在使用QT UDP时,可能会出现下面的情况:1.接收不到数据1.1 代码不对我看有些文章会这样写:m_udpSocket = new QUdpSocket();m_udpSocket-&amp;gt;bind(QHostAddress::AnyIPv4,8083,QUdpSocket::ShareAddress);
2016-08-09 16:24:14
15847
10
原创 关于.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
2631
原创 关于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
1407
原创 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
3158
原创 解决通过CHttpFile获取远程图片,图片长度取得不准确的问题
采用CHttpFile和CInternetSession类去获取图片,如下图中红色方框中所示的方式,并不能每次都能获取到正确的远程图片长度,我的测试工控机,就始终不能获取到图片,原因可能是CHttpFile类是直接去获取图片,通过网络获取图片需要时间,因此会造成GetLength()函数不能获取到正确的数据,使用一个循环去等待也没有解决该问题,也许是计算不准确。
2014-08-12 19:44:59
2299
原创 CStatic子类化解决背景透明,文本重叠,刷新闪烁问题
由于是很少使用VS2008的MFC,遇到了很多麻烦,其实都是很初级的;但是我还是想做点记录,以示对自己工作的鼓励,同时也是留个纪念,因为随着微软政策的变化,以后MFC的程序将不会是趋势了,而我也有意从事Android平台的开发,所以不太可能做MFC程序了。
2014-08-12 19:16:21
8183
原创 VS2008自动添加ActiveX插件的MFC类
VS2008中添加ActiveX的MFC类,不同的方式,自动生成的类文件是不同的。我所用到的视频插件和MSCOMM插件的MFC类的添加方式相同。下面我将
2014-08-12 18:50:14
2899
原创 上传资源勘误
我上传的代码类资源 http://download.youkuaiyun.com/detail/tom06/7742149今天早上我
2014-08-12 10:45:50
710
最简单的生成Qt Doc文档的小工程
2019-04-11
仿搜狗网址导航简化版,格式化代码增强可读性,添加部分注释
2018-11-29
Qt控件拖拽最简实践
2018-11-28
在win7下生成dump文件的头文件
2018-07-12
小集合:CPP和C#调用Dll、AES使用,、调用Python脚本、SHA和MD5
2018-07-12
分别在QLabel和QWidget上绘制图片的示例
2018-06-12
验证QList线程安全性的小程序
2018-04-13
VS2010 Addin插件学习小Demo C++版本
2017-09-13
自定义QTableView的表头QHeaderView实现多行表头
2016-11-14
两个实现MFC导入PNG图片的类的测试DEMO
2014-10-23
解析ini和xml两种配置文件的MFC小DEMO,build by 唐太咸
2014-10-11
使用IPicture接口显示图片的一个MFC小程序,整理修改by唐太咸
2014-09-22
C++回调函数的2个DEMO程序,整理修改by唐太咸
2014-09-22
MFC的CStatic子类化,解决背景透明,文本重叠,刷新闪烁
2014-08-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人