自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 资源 (1)
  • 收藏
  • 关注

转载 深度解析VC中的消息

消息是指什么?消息系统对于一个win32程序来说十分重要,它是一个程序运行的动力源泉。一个消息,是系统定义的一个32位的值,他唯一的定义了一个事件,向Windows发出一个通知,告诉应用程序某个事情发生了。例如,单击鼠标、改变窗口尺寸、按下键盘上的一个键都会使Windows发送一个消息给应用程序。消息本身是作为一个记录传递给应用程序的,这个记录中包含了消息的类型以及其他信息。例如,

2013-06-03 22:49:52 464

转载 几个 Windows 到 Linux 的代码移植问题

1、在 Linux 实现 Win32 API 之 GetTickCount 函数为了将 Windows 中的  GetTickCount API 函数移植到 Linux,可以使用如下的代码:1.long GetTickCount()2.{3.tms tm;4.return times(&tm);5.}2、Windows 和 L

2013-06-03 22:44:45 460

转载 C++编译器如何实现异常处理

译者注:本文在网上已经有几个译本,但都不完整,所以我决定自己把它翻译过来。虽然力求信、雅、达,但鉴于这是我的第一次翻译经历,不足之处敬请谅解并指出。与传统语言相比,C++的一项革命性创新就是它支持异常处理。传统的错误处理方式经常满足不了要求,而异常处理则是一个极好的替代解决方案。它将正常代码和错误处理代码清晰的划分开来,程序变得非常干净并且容易维护。本文讨论了编译器如何实现异常处理。我将假

2013-06-03 22:43:23 1472

转载 Linux系统共享库编程

一、说明类似Windows系统中的动态链接库,Linux中也有相应的共享库用以支持代码的复用。Windows中为*.dll,而Linux中为*.so。下面详细介绍如何创建、使用Linux的共享库。二、创建共享库在mytestso.c文件中,代码如下:01.#include 02.#include 03. 04.int GetM

2013-06-03 22:40:38 465

转载 C++的static关键字

C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类;后者主要说明static在类中的作用。一、面向过程设计中的static1、静态全局变量在全局变量前,加上关键字static,该变量就被定义成为一个静态全局变量。我们先举一个静态全局变量的例子,如下:01.//Example

2013-06-03 22:36:59 436

转载 在C++中实现C#的delegate机制

由于这段时间较忙,自从上次我发布了一个供初学者学习的“MFC”程序后,就没怎么写文章了。这段时间在忙新的项目,项目逻辑还算复杂,用了好多有闪光点的技术,下面我要讨论的是闪光点之一:在C++中实现C#的delegate机制。用过C#的朋友都觉得C#的确是个好语言,但有时由于特殊需要,不得不用C++,在C++中要想实现C#中的Thread等也是可行的,不过代码要稍复杂。以例子来说明:

2013-06-03 22:35:52 695

转载 C++编程对缓冲区的理解

什么是缓冲区缓冲区又称为缓存,它是内存空间的一部分。也就是说,在内存空间中预留了一定的存储空间,这些存储空间用来缓冲输入或输出的数据,这部分预留的空间就叫做缓冲区。缓冲区根据其对应的是输入设备还是输出设备,分为输入缓冲区和输出缓冲区。为什么要引入缓冲区我们为什么要引入缓冲区呢?比如我们从磁盘里取信息,我们先把读出的数据放在缓冲区,计算机再直接从缓冲区中取数据,等缓冲

2013-06-03 22:34:33 535

转载 从printf谈可变参数函数的实现

1. 使用情形1.int a =10;2.double b = 20.0;3.char *str = "Hello world";4.printf("begin print\n");5.printf("a=%d, b=%.3f, str=%s\n", a, b, str);6....从printf的

2013-06-03 22:33:44 474

转载 常用编码详解

一、通用字符集(UCS)ISO/IEC 10646-1 [ISO-10646]定义了一种多于8比特字节的字符集,称作通用字符集(UCS),它包含了世界上大多数可书写的字符系统。已定义了两种多8比特字节编码,对每一个字符采用四个8比特字节编码的称为UCS-4,对每一个字符采用两个8比特字节编码的称为UCS-2。它们仅能够对UCS的前64K字符进行编址,超出此范围的其它部分当前还没有分配编址。

2013-06-03 22:32:17 800

转载 C 程序的外部变量与函数

C程序由一组对象组成,这些对象包括程序中所使用的变量和实现特定功能的函数。变量可以分为函数内部定义、使用的变量和函数外部定义的变量,通常情况下,把函数内部定义、使用的变量称为内部变量或局部变量,而将在函数外部定义的、供许多函数所使用的变量称为外部变量,一般情况下,也可以称为全局变量。由于C语言不允许在一个函数中定义其他函数,因此函数本身是外部的。一般情况下,也可以说函数是全局函数。在缺

2013-06-03 22:30:58 564

转载 指针专题

一、数组的指针、指针数组以及指向指针的指针考虑数组的指针的时候我们要同时考虑类型和维数这两个属性。换一句话,就是说一个数组排除在其中存储的数值,那么可以用类型和维数来位置表示他的种类。A)一维数组  在c和c++中数组的指针就是数组的起始地址(也就第一个元素的地址),而且标准文档规定数组名代表数组的地址(这是地址数值层面的数组表示)。例如:1.int a[10];2.i

2013-06-03 22:29:59 461

转载 深入研究析构函数

析构函数是C++中一个神奇的部分,在调用析构函数时,并不需要像普通函数一样写出函数调用的代码,而是由编译器将析构函数插入到程序中合适的调用地方。如果你不清楚这些插入析构函数的地方,就会出现一些很难解决的错误。在分析析构函数的执行时,一个经典的示例是全局变量的析构过程。我们来考虑下面的代码:01.#include< STDAFX.H >02.CcomPtr g

2013-06-03 22:28:15 560

转载 如何将一个文件分割成多个小文件

你也许会遇到到这样一个问题?当你有一个较大的软件,而无法用一张软盘将其全部拷下时,你也许会想到该将它分解开,分盘拷回去后,再将它们合并起来。现在的这种分割工具很多,你想自己动手做一个适合自己的分割工具么?下面就让我用以前用VC做的一个<袖珍文件分割器>的例程来告诉你吧!程序运行后界面如下: 图一    基本构成思想:文件分割的基本思想比我之前发表的另一篇文章《如何将多个文件

2013-06-03 22:26:15 1771

转载 如何将多个文件捆绑成一个可执行文件

将多个文件合并成一个最终可执行文件,运行这个最终文件时,就相当于运行了合并前的多个文件。这种程序在木马程序合并中会经常用到,你想知道它是怎么用程序实现的么?下面我就用我用VC6.0做的一个文件捆绑器的例子代码来告诉你,程序运行后界面如下:图一基本组成思想:其实,其中的构成思想非常简单。建立一个新的二进制文件,先写入你的捆绑程序的数据和其文件长度,再写入你要捆绑的第一个文件的

2013-06-03 22:25:03 4744 1

转载 深入浅出硬盘分区表

人们在使用电脑时,有时由于异常操作,有时由于病毒侵袭,会导致某个分区消失或硬盘无法启动。究其原因,就是硬盘分区表受损。硬盘分区表可以说是支持硬盘正常工作的骨架.操作系统正是通过它把硬盘划分为若干个分区,然后再在每个分区里面创建文件系统,写入数据文件.本文主要讲述的是分区表的位置,结构以及各个分区表是如何链接起来的.当掌握了这些知识后,即使分区表受到破坏,一样也可以根据残存的数据手工修复分区表,从而

2013-06-03 22:22:05 655

转载 PE文件格式详解(下)

预定义段  一个Windows NT的应用程序典型地拥有9个预定义段,它们是.text、.bss、.rdata、.data、.rsrc、.edata、.idata、.pdata和.debug。一些应用程序不需要所有的这些段,同样还有一些应用程序为了自己特殊的需要而定义了更多的段。这种做法与MS-DOS和Windows 3.1中的代码段和数据段相似。事实上,应用程序定义一个独特的段的方法是使

2013-06-03 22:21:17 886

转载 PE文件格式详解(上)

Windows NT 3.1引入了一种名为PE文件格式的新可执行文件格式。PE文件格式的规范包含在了MSDN的CD中(Specs and Strategy, Specifications, Windows NT File Format Specifications),但是它非常之晦涩。    然而这一的文档并未提供足够的信息,所以开发者们无法很好地弄懂PE格式。本文旨在解决这一问题,它会对整个

2013-06-03 22:18:10 501

转载 Windows快捷方式文件格式解析

最近一直作linux项目,很久没来VC知识库了,先向大家问个好!现在拜个晚年不是很晚吧?(不是说有心拜年八月十五也不晚吗!!嘿嘿)好了,言归正传。大家知道通过IShellLink接口可以得到快捷方式的各种属性。具体怎么做,网上有很多文章,这里就不介绍了。现在主要是分析一下快捷方式文件的格式,并且自己写一个解析程序。为了方便大家理解,解说完每个段后附上一个快捷方式对应部分的事例数据并

2013-06-03 22:15:34 764

转载 COM技术初探(三)-- 一个真正的COM

一、实现ISmipleMath,IAdvancedMath接口和DllGetClassObject()1.1 实现ISmipleMath和IAdvancedMath接口让我们将原来的CMath 类(CMath其实就是"COM技术初探(二)COM基础知识"里的那个CMath类)修改来实现ISmipleMath接口和IAdvancedMath接口。修改的地方如下:1)

2013-06-03 21:31:33 845

转载 COM技术初探(二)

目录一、COM是一个更好的 C++   1. COM 是什么   2. 从 C++ 到 DLL 再到 COM      2.1 C++      2.2 DLL      2.3 COM二、COM基础   1. COM基本知识      1.1 返回值HRESULT      1.2 初识idl      1.3 IUnkown接口

2013-06-03 21:16:49 910

转载 COM技术初探(一)

目录一. COM是一个更好的 C++   1. COM 是什么   2. 从 C++ 到 DLL 再到 COM      2.1 C++      2.2 DLL      2.3 COM二. COM基础   1. COM基本知识      1.1 返回值HRESULT      1.2 初识idl      1.3 IUnkown接口

2013-06-02 21:08:41 590

转载 COM技术

所谓COM(Component Object Model,组件对象模型),是一种说明如何建立可动态互变组件的规范,此规范提供了为保证能够互操作,客户和组件应遵循的一些二进制和网络标准。通过这种标准将可以在任意两个组件之间进行通信而不用考虑其所处的操作环境是否相同、使用的开发语言是否一致以及是否运行于同一台计算机。COM的优点?首先:用户一般希望能够定制所用的应用程序,而组件技术从本

2013-06-02 20:53:05 523

转载 BAT 批处理脚本 教程

第一章 批处理基础第一节 常用批处理内部命令简介批处理定义:顾名思义,批处理文件是将一系列命令按一定的顺序集合为一个可执行的文本文件,其扩展名为BAT或者CMD。这些命令统称批处理命令。小知识:可以在键盘上按下Ctrl+C组合键来强行终止一个批处理的执行过程。了解了大概意思后,我们正式开始学习.先看一个简单的例子!@echo offecho "欢迎来到非常BAT!"

2013-06-02 20:42:38 1450

转载 Python完全新手教程

Python完全新手教程作者:taowen, billriceLesson 1 准备好学习Python的环境下载的地址是:www.python.org为了大家的方便,我在校内作了copy:http://10.1.204.2/tool/compiler&IDE/Python-2.3.2-1.exelinux版本的我就不说了,因为如果你能够使用linux并安装好说明

2013-06-02 20:37:29 678

转载 通过游戏策划阶段防治游戏外挂

网络游戏外挂的名字一提起来是让很多网络游戏从业者和玩家都很愤怒的一件事,正是这些网络游戏外挂让我们游戏从业者天天背着众多玩家的责骂不说,更不可原谅的是我们辛苦的劳动成果遭受到了摧残,并且还要和因为网络游戏外挂而带来的诸多游戏问题,而经常的加班加点的工作,让我们失去了更多开创新产品和后续作品的时机,还要耗费大量的人力物力与那些游戏外挂进行周旋。更有因为网络游戏外挂使网络游戏公司所运营的游戏最终关闭,

2013-06-02 20:30:57 2892

转载 游戏引擎列表

免费和开源引擎Agar - 一个高级图形应用程序框架,用于2D和3D游戏。Allegro - 基于 C/C++ 的游戏引擎,支持图形,声音,输入,游戏时钟,浮点,压缩文件以及GUI。Axiom 引擎 - OGRE的衍生引擎。Baja 引擎 - 专业品质的图像引擎,用于The Lost Mansion。Boom - Doom代码的一部分。由TeamTNT开发Build 引擎 - 一个第一

2013-06-02 20:26:45 1441

转载 游戏引擎全剖析(二)

第6部分: 声音系统,音频APIs声音系统  由于人们玩的游戏在种类和技术上的进步,声音和音乐近几年来在游戏中正逐渐变得重要起来(声音是一个实际游戏的可玩特点,比如在Thief和其它同类游戏中的听觉提示)。现在四声道环绕系统在游戏玩家的宝库中是负担得起的和平常的事。给定空间的声音,噪音的障碍和闭塞,和动态的音乐,如今许多游戏使用这些提高玩家情绪上的反应,更多的关注投入到这个领域就不

2013-06-02 20:24:44 1570

转载 游戏引擎全剖析(一)

第1部分: 游戏引擎介绍, 渲染和构造3D世界介绍  自Doom游戏时代以来我们已经走了很远。 DOOM不只是一款伟大的游戏,它同时也开创了一种新的游戏编程模式: 游戏 "引擎"。 这种模块化,可伸缩和扩展的设计观念可以让游戏玩家和程序设计者深入到游戏核心,用新的模型,场景和声音创造新的游戏, 或向已有的游戏素材中添加新的东西。大量的新游戏根据已经存在的游戏引擎开发出来,而大多数都

2013-06-02 20:22:17 1447 1

转载 游戏服务器的总体框架

Cpp代码  /* QQ: 2#4#2#1#0#6#7#6#4    #表示为空 Mail: lin_style#foxmail.com    #替换成@ */   核心,我的并行思路整体拓扑图代码执行模块层次 核心,我的并行思路21:31 2009-12-18    昨晚睡觉的时候,又仔细的考虑了下采取的整个

2013-06-02 20:18:58 660

转载 搭建可复用的游戏服务器框架的思路

网络游戏公司成长到一定的阶段,会有一些经验和技术的积累,这些积累会在日后的游戏开发使用,但如果背负了过重的历史包袱,就应该丢弃,开发一套全新的架构在适应现在的游戏开发技术需要。而我,最近就在考虑一个可复用的服务器框架,这个问题思考已经不是一天两天的事情了,但还未正式开始实施。框架设计目的1:加快游戏开发过程,缩短开发周期——设计和代码的复用2:提高产品质量——由所谓的“精英

2013-06-02 20:14:02 567

转载 网易游戏服务器开发框架 Pomelo

pomelo 是由网易开发的基于node.js开发的高性能、分布式游戏服务器框架, 也可作为高实时web应用框架。Pomelo的应用范围pomelo最适合的应用领域是网页游戏、社交游戏、移动游戏的服务端,开发者会发现pomelo可以用如此少的代码达到强大的扩展性和伸缩性。当然还不仅仅是游戏,很多人断言未来的web时代是实时web应用的时代, 我们发现用pomelo开发高实时

2013-06-02 20:11:42 844

转载 如何构建自己的网游基本构架

很多想做游戏策划的人不知道一款游戏的搭建到底应该从哪里开始着手,没关系,这是很多资深游戏策划人都会遇到的问题,因为一个创意要想成为一款作品,需要大量的思考与工作,为了便于大家理解,我们选择现在国内比较流行的网络游戏的基本框架的搭建来做我们这次讨论的研究对象,网络游戏的基本或者叫核心构架与单机游戏的差别不大,射击游戏依然是以射击为核心构架,格斗游戏也依然是以格斗为核心构架,区别在于附加机制的不同,好

2013-06-02 19:59:04 909

转载 一个游戏框架

最近一段时间不是很忙,就写了一个自己的游戏服务器框架雏形,很多地方还不够完善,但是基本上也算是能够跑起来了。我先从上层结构说起,一直到实现细节吧,想起什么就写什么。第一部分 服务器逻辑服务器这边简单的分为三个部分,客户端的连接首先到达网关服务器,网关这里有个线程用来监听来自与客户端的连接,然后在将这些数据发送到游戏逻辑服务器上,这个逻辑游戏服务器上,数据的交互就是通过与数据服务器进

2013-06-02 19:57:36 573

转载 P2P协议学习

一、             P2P定义:P2P(Peer to Peer)对等计算机或对等网络。P2P的核心是数据存储在客户本地,通过存储信息(名称、地址、分块)的查询,让终端之间直接数据传递。P2P网络让网络上的数据流量分散化,同时管理点不仅没有服务容量的压力,而且只存储数据的索引与链接,不对数据本身负责,避免了版权与管理的麻烦。“我为人人,人人为我”的思想是基于P2P

2013-06-02 19:48:03 698

转载 现有p2p协议分类与简介

(一) 常用p2p协议  1、napster:世界上第一个大型的p2p应用网络;中央集中式,倒闭了。napster,这是当时很火的一种共享服务,主要用于查找mp3,它有一个服务器用于存储mp3文件的链接位置并提供检索,而真正的mp3文件则存放在千千万万的个人电脑上,搜索到的文件通过p2p方式直接在个人电脑间传播共享。这种方式的缺点就是需要一台服务器,在mp3文件版权之争火热的年代,

2013-06-02 19:46:22 1011

转载 NAT穿透

1.NAT穿越NAT分两大类,一类是对称的(Symmetric NAT),5元组(源端口,IP,目的端口IP,协议)限制更加严格,很大一部分企业的NAT是对称的;一类是非对称的(Cone NAT,锥型),非对称的。非对称Cone包括完全锥形(穿透后任何IP和端口都可以往私网发送包),限制锥型(穿透后,同一IP的程序可以往私网发送包),和端口限制锥形(只有接到私网内部包的IP和端口可以往私网

2013-06-02 19:44:02 721

转载 NAT穿透技术原理浅谈

今天我们来看看NAT方面的技术,提起NAT技术,我们大家可能并不陌生,就真实的存在我们身边,只不过我们很少关注它.NAT是一种网络地址翻译技术,将内部私有IP地址改变成可以在公网上使用的:公网IP.其出现背景就是因为我们国家公网IP地址太少了不够用,才使NAT技术兴起.这里我就不具体和大家细说NAT是怎么转换IP地址了,技术原理不太难.NAT技术的使用从技术角度讲是有利也有弊的.我们可以同时让多个

2013-06-02 19:40:01 907

转载 NAT与NAT穿透

1. NAT简介前面的文章说到了针对IP不足的许多技术,但这些技术基本都不会增加可用的IP地址数.NAT(Network Address Translation)又称"网络地址转换",它是一种把内部私有网络地址翻译成合法网络IP地址的技术,个人认为该技术是解决IP地址不足最有效的方法.它是一个IETF(Internet Engineering Task Force,Internet工程任务组)

2013-06-02 19:36:02 1025

转载 使用TCP协议的NAT穿透技术 (转)

其实很早我就已经实现了使用TCP协议穿透NAT了,但是苦于一直没有时间,所以没有写出来,现在终于放假有一点空闲,于是写出来共享之。    一直以来,说起NAT穿透,很多人都会被告知使用UDP打孔这个技术,基本上没有人会告诉你如何使用TCP协议去穿透(甚至有的人会直接告诉你TCP协议是无法实现穿透的)。但是,众所周知的是,UDP是一个无连接的数据报协议,使用它就必须自己维护收发数据包的完

2013-06-02 19:34:09 803 2

转载 MFC六大关键技术

MFC六大关键技术之初始化过程我并不认为MFC减轻了程序员们的负担,MFC出现的目的虽然似乎是为了让程序员不用懂得太多就可以进行视窗编程,但本人在MFC里徘徊了很久很久(因为那时没有书本详细介绍MFC的原理),毫无收获。可能朋友们会说,怎么一定要了解MFC的具体呢,“黑箱”作业不行吗?这不是微软的初衷吗?  不行!!!如果这样,我宁愿永远不选择MFC!在学电脑之前,本人学习的东西大

2013-06-02 19:31:09 653

Linux C编程一站式学习

Linux C/C++/系统编程 一站式学习

2013-05-30

空空如也

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

TA关注的人

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