随笔分类 - [30]C++
-
#ifdef,#ifndef,#define,#endif解析
摘要:#ifdef,#ifndef,#define,#endif解析(原) 我们在看一些开源的源代码的时候,经常会看到如下情景:# if defined(_PTHREADS) && !defined(_NOTHREADS)# define __STL_PTHREADS# endif# if defined(_UITHREADS) && !defined(_PTHREADS) && !defined(_NOTHREADS)# define __STL_UITHREADS# endif# if defined(__sgi) && !defi 阅读全文
-
基于 IOCP 的通用异步 Windows Socket TCP 高性能服务端组件的设计与实现
摘要:设计概述 服务端通信组件的设计是一项非常严谨的工作,其中性能、伸缩性和稳定性是必须考虑的硬性质量指标,若要把组件设计为通用组件提供给多种已知或未知的上层应用使用,则设计的难度更会大大增加,通用性、可用性和灵活性必须考虑在内。 现以一个基于 IOCP 的通用异步 Windows Socket TCP 服务端组件为例子,讲述其设计与实现相关的问题,希望能引发大家的思考,对大家日后开展相关类似工作时有所帮助。关于通用性、可用性、Socket 模型选型以及接口模型的设计等问题已经在本座前段时间发表的《通用异步 Windows Socket TCP 客户端组件的设计与实现》中进行过阐述,此处就不再重.. 阅读全文
-
gaia源码分析
摘要:最近在看《Real Time 3D Terrain Engines Using C++And DirectX 9》,不过是看网上翻译的版本叫《实时地形引擎》,看英文实在蛋疼,还好有翻译版的,要多多感谢承天一大哥!这本书讲解了地形制作的一些技术,更吸引人的是实现了一个小型的渲染引擎,对于我这样的游戏引擎初学者很适合。gaia正是书中构建的引擎的名字。这里来写写一些简单的分析,作为学习笔记。(一)资源管理1、data_pool.hcPoolGroup:模板类,池组,顾名思义,就是装载一组数据的对象template <class T>class cPoolGroup{public: cP 阅读全文
-
C++学习框架 总结(简单步骤)
摘要:咱这园子不能只为大牛人们服务对不?呵呵,写点菜鸟级的给各位像我一样的菜鸟。这个是实习期间老师给我们讲的,编辑一下分享了。C++的学习方法可谓仁者见仁。我这里分享一个,给一些新手人借鉴,因为我也是新手。在浏览之前,我先说一下为什么要“览”!这要说到中国人的认识习惯上了,中国人喜欢在认识事物的时候首先对其有一个大致的了解,明白自己现在要做什么,将来会有什么之类的。我称之为:“统大局”。“不谋全局者不足谋一域”。所以很有必要知道怎么学习,这样往往减少很多不必要的时间。“老师的作用不就是为了减少学习成本吗?”还有一个想要首先强调的是“目录”浏览!可以给你一个量化的标准,那就是目录的投入时间是你单页投入 阅读全文
-
计算机经典书籍总结
摘要:这个帖子原本是在C++奋斗乐园论坛讨论的,后来觉得有必要和更多朋友分享下,所以就在这里也贴出来了,希望大家一起补充。因为我个人学的是C/C++的,所以JAVA等程序语言的书籍我就不讨论了。这里讨论的主要是C/C++的经典书籍,另外还有计算机专业要学的一些重要课程领域的书。 C/C++: 《C程序设计语言》http://book.douban.com/subject/1139336/ 《C Primer Plus》http://book.douban.com/subject/1319751/ 《C陷阱与缺陷》http://book.douban.com/subject/2778632/ ... 阅读全文
-
(堆的应用)Huffman赫夫曼树的建立
摘要:建立Huffman树的基本思路:给定有权重的一系列数据(带权重),从中挑选最小权重的两个数据,组成一棵树,得到的父节点再插入到数据系列当中。开始的时候按着严老师的办法,是借助顺序表来完成Huffman树的建立;同样,在建树过程中要从顺序表中选择比较小的两个数,相加后再插入到表尾,如此往复,知道所有给出的点都插入为止。通过最小堆来建树也很灵活便捷。堆的性能高,排序时间复杂度为nlog(2)n,利用最小堆,就可以将很快找出最小的元素(总是在顶部)。下面8步立刻掌握利用最小堆来建立Huffman树。看图解说①原图(已经是最小堆);②交换堆的首元素(肯定是最小的)和最后一个元素对换;③交换后删除最后一 阅读全文
-
项目管理理论与实践系列文章索引
摘要:项目管理理论与实践(1)——企业项目管理介绍项目管理理论与实践(2)——软件需求分析项目管理理论与实践(3)——如何进行有效的项目管理项目管理理论与实践(4)——UML应用(上)项目管理理论与实践(5)——UML应用(下)项目管理理论与实践(6)——利用Excel制作项目文档的设计技巧项目管理理论与实践(7)——软件开发报价的计算方法待续作者:Leepy邮箱:sunleepy(AT)gmail.com出处:http://liping13599168.cnblogs.com/本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责 阅读全文
-
Windows API、CRT和STL
摘要:程序员应该知道的关于Windows API、CRT和STL二三事 2011-06-09 00:19 by menggucaoyuan, 536 visits, 网摘, 收藏, 编辑1.本文编写目的 本文是为了帮助一些人弄清一些关于Windows API, C运行时程序库(CRT), 和标准C++库(STL)的基本概念。有很多人甚至是有经验的程序员在这些概念上是含糊不清的甚至是有错误观点。如果你想知道他们是在什么基础上实现的并且一直没时间弄清楚这些概念,请花费点时间阅读下本文。2. 基本概念 下面这幅图代表了WinAPI、CRT和STL三者之间的关系。 表 1: Windows API、CR. 阅读全文
-
在VS2010上使用C#调用非托管C++生成的DLL文件(图文讲解)
摘要:背景 在项目过程中,有时候你需要调用非C#编写的DLL文件,尤其在使用一些第三方通讯组件的时候,通过C#来开发应用软件时,就需要利用DllImport特性进行方法调用。本篇文章将引导你快速理解这个调用的过程。步骤1. 创建一个CSharpInvokeCPP的解决方案:2. 创建一个C++的动态库项目:3. 在应用程序设置中,选择“DLL”,其他按照默认选项:最后点击完成,得到如图所示项目: 我们可以看到这里有一些文件,其中dllmain.cpp作为定义DLL应用程序的入口点,它的作用跟exe文件有个main或者WinMain入口函数是一样的,它就是作为DLL的一个入口函数,实际上它是个可选的文 阅读全文
-
C++语法注意点
摘要:1. 结构Struct和共用体Union 共用体是一种数据格式,它能够存储不同的数据类型,单只能同时存储其中的一种类型。如结构可以同时存储int、long和double,共用体只能存储int、long或double。2. 使用cin.get(char) 使用cin输入,将忽略空格和换行符,而发送给cin的输入被缓冲,这意味着用户必须按下回车才可以把输入的内容发送给程序。这里可以选择采用cin.get(char)进行补救,最后输入Ctrl+Z执行EOF结束。3. 二维数组和指针数组 看这样的两个数组:char* cities1[5] =02{03"Fuzhou",04&quo 阅读全文
-
在VS2010项目中引用Lib静态库(以Openssl为例)
摘要:Openssl是个为网络通信提供安全及数据完整性的一种安全协议,囊括了主要的密码算法、常用的密钥和证书封装管理功能以及SSL协议,并提供了丰富的应用程序供测试或其它目的使用。首先下载Openssl包:(http://www.openssl.org/),这是一个C语言类库包,在Windows下可以通过Perl对该类库包进行MakeBuild,产生libeay32、ssleay32的Lib以及Dll文件,具体操作详见:http://blogger.org.cn/blog/more.asp?name=OpenSSL&id=18972,通过编译产生这样一系列文件:inc32里面放置C语言头文件 阅读全文
-
C++ mac
摘要:code: 阅读全文
-
远程客户端网卡MAC获得
摘要:Get MAC Address, SNMP Methodsnmpmac.cppsnmpapi.cpp In my search for an ironclad method of finding the MAC address of the ethernet card of a system, I attempted the NetBIOS method as described in the F... 阅读全文
-
C++学习网站
摘要:http://www.vckbase.com/vckbase/default.aspx 阅读全文