随笔分类 - [3]C++
有些知识是必须掌握的~
摘要:整篇没用的发上来,一个简单的从二进制文件中读取内容,并以16进制格式保存的小示例程序,没多少实际意义。闲话不多说,直接贴代码: include"stdafx.h"#definebyteunsignedcharint_tmain(intargc,_TCHAR*argv[]){if(NULL==argv[1]){printf("Parameterneeded!\n");return1;}FILE*f_Exefile=NULL;FILE*f_Report=NULL;f_Exefile=_wfopen(argv[1],L"rb");if(NU
阅读全文
摘要:文章来源:http://group.gimoo.net/review/82612templates(模板)是节省时间和避免代码重复的极好方法,我们可以只输入一个类模板,就能让编译器实例化所需要的很多个特定类及函数。类模板的成员函数只有被使用时才会被实例化,所以只有在每一个函数都在实际中被使用时,我们才会得到这些函数。确实这是一个很重要的技术,但是如果不小心,使用模板可能会导致代码膨胀。什么是代码膨胀?请看下面的例子:1 template <class T, int num>2 class A3 {4 public:5 void work()6 {7 cout < < &
阅读全文
摘要:问题描述: 今天用VS2010编译一个在VS2008下Coding的工程的时候,VS给出了一堆链接错误信息,如下图所示: 在ErrorList里面列出了34个链接错误信息,但仔细看的话,其实很多都是重复的,只有两三个外部符号未正确解析,如下: "public: static void __cdecl std::_String_base::_Xran(void)" (?_Xran@_String...
阅读全文
摘要:本文作为结束篇,会稍微介绍下怎么反序列化GoogleBuffer数据,并在最后提供本系列文章中所用到的代码整理供下载。 上一篇文章介绍了怎样将数据序列化到了addressbook.data中,那么对于接受方而言该怎么解析出原本的数据呢。同样,protoc编译器生成的代码文件中提供了反序列化的接口,基本上和序列化的函数对应的,如下图所示: 上文中采用了SerializeToOstream、Seri...
阅读全文
摘要:本文主要会介绍怎么使用Google Protocol的Lib来序列化我们的数据,方法很多种,本文只介绍其中的三种,其他的方法读者可以通过自行研究摸索。但总的来说,序列化数据总的来说分为以下俩步: 1)使用数据源填充数据结构,无论数据源来自文件还是内存还是标准输入 2)利用Lib提供的序列化接口将数据结构序列化,然后存储在内存或者磁盘上 一、填充数据结构 从数据源中获取数据,这儿的数据源可能来...
阅读全文
摘要:本文开始将逐渐介绍怎么使用protocol buffers来完成序列化与反序列化数据的应用,开发环境为VS2008,语言为C++,外部库用的是googlebuffer库。 1、Google ProtocolBuffer库 在我们的应用程序里面,需要使用到google buffer提供的库,大家可以到官网去下载,笔者也会提供一个精简后的Win32 Release版的Lib库下载(Debug版与X64...
阅读全文
摘要:本文主要偏向于介绍怎么使用Google的Protocol Buffer技术来压缩与解析你的数据文件,更加详细的信息请参阅Google开放的开发者网页文档,地址为:http://code.google.com/apis/protocolbuffers/docs/overview.html。 一、简单的介绍 当然,在继续本文之前,读者还是需要对Google Protocol Buffers有一些基...
阅读全文
摘要:对于vector、list和deque这三种容器类,有如下一些区别: 迭代器支持的操作: list容器不支持 iter+n、iter-n、iter1+=iter2、iter1-=iter2以及关系比较符 容器操作: vector没有push_front操作
阅读全文
摘要:转载自http://hi.baidu.com/naxiaohe010/blog/item/ee8f54acc29550f6faed5053.html,若需转载,请注明文章来源,毕竟是文章作者的一番心血之作~ 首先介绍CreateEvent是创建windows事件的意思,作用主要用在判断线程退出,线程程锁定方面 CreateEvent 函功能描述:创建或打开一个命名的或无名的事件对象 EVENT有...
阅读全文