自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

梦想照进现实

纪念我的未来

  • 博客(51)
  • 资源 (3)
  • 收藏
  • 关注

转载 mysql 的 latin1 中文支持

初学者往往会犯糊涂,mysql 的默认字符集 latin1 是否支持中文? 初步分析表明,是的,确实支持中文!(是初步的结论,只做了初步的分析) 1. 先来看看latin1 (参考百度百科)Latin1是ISO-8859-1的别名,有些环境下写作Latin-1。ISO-8859-1编码是单字节编码,向下兼容ASCII,其编码范围是0x00-0xFF,0x00-0x7F之间完全和

2013-03-08 17:23:02 7689

转载 MudOS应用模型

1. 为了执行某个对象中的某个函数,MudOS首先将Mudlib中的文件载入,然后将其中的函数编译成一系列的字节码序列,当解释器接收到Interactive发送过来的函数调用命令时,将执行该函数的字节码序列。 2.  指向Interactive模块的双向箭头表示:Interactive接收用户的指令并处理这些指令,将处理后的指令(即一些字节码序列)传递给解释器执行,解释器再将结果返回给Interactive,由它通过网络传递到用户终端并显示出来。 3.  由图中可以看出,MudOS和JVM非常相

2011-04-21 17:56:00 930

转载 中阶LPC-介绍

1.1 基础 LPC       阅读此课本的人应该读过基础 LPC 课本或是够熟悉 mud 世界的程序写作. 不只是能建造房间 和撰写区域内有关的对象而已, 也该清楚自己写出来的程序在执行的时候到底在做什么. 如果你觉得你的程度还不到, 就回去看完基础 LPC再来看中阶LPC 课本. 如果你达到要求, 你会发现你在此读到的东西对你比较有意义. 1.2 中阶 LPC 课本的目标       此份介绍性的课本是为了对 LPC 一无所知的人, 让他们有能力在任何 LPMud写

2011-04-21 17:40:00 974

转载 LPC基础教程-数据类型

      Lpc的Object是由零个或更多一些的被一个或一个以上函数操纵控制的变量组成的。在代码中函数排列的顺序是 不影响Object的特性,但是影响代码的可读性。当你写的那个Object被第一次调用时,Driver将你写的代码装 入内存。当每一个Object被调入内存时,所有的变量是没有值的。create()这个函数被调用来初始化Object值。 create()这个函数在Object装入内存后立即被调用。在你读本文时可能对编程一无所知,你可能不知道什么是 函数以及它是怎么调用的;或许你有了一些编程的

2011-03-30 23:37:00 1781

转载 LPC基础教程-Lpc程序和编程环境

Lpc程序和编程环境编程环境      通常我们所见到的Mud大多是LpMud。LpMuds使用Unix的指令和文件结构。如果你对Unix有所了解,那么LpMud中的一些指令和它的文件结构与普通的Unix基本一样。如果你从未使用过Unix,那么它与Dos不同的是在文件的路径用"/",而不是Dos的"/".一个典型的LpMud的文件是这样的: /clone/player/player.c 其中"/clone/player/"是路径,player.c是文件名。       在多数的LpMud中,下面这些的基本的

2011-03-30 10:20:00 3557

原创 ACM题目1001-Exponentiation-Python实现

算法是比较低效的,时间复杂度为O(N3).仅仅是为了练习Python.#-*- coding:gb2312 -*-"""北大ACM 1001 exponentiation基本思路: 1.3099*12 去掉小数点后倒序得到[9,9,0,3,1] [9,9,3,0,1] * [9,9,0,3,1] = [9,9,0,3,1]*9*10^0 = [81, 81, 0,27, 9] + [9,9,0

2011-03-17 17:23:00 2021

转载 Python简明手册-转自啄木鸟社区

Python 绝对简明手册 -- [email protected] ::-- ZoomQuiet [2006-09-15 04:35:33] Contents 阅读须知 基本语法 if / elif / else in for ... in break / continue while / pass is del try ... except ... finally

2011-03-16 22:15:00 6720

原创 求最大子序列的和-Python实现

有3种常见的算法实现该要求,下面将按效率由低到高依次实现: # def f1(arg):     """     """     if not isinstance(arg, type([])):         return -1     max = sum = 0     for e in arg:         for i in arg[arg.index(e):]:             sum =

2011-03-15 14:34:00 1390

转载 ACE实现简单的TCP通信

<br /><br /> <br />原文来自http://andylin02.javaeye.com/blog/470287<br />概述:<br />传输控制协议TCP(Transmission Control Protocol):TCP提供可靠的、面向连接的运输服务,用于高可靠性数据的传输。TCP协议的可靠性是指保证每个tcp报文能按照发送顺序到达客户端。<br />Tcp通信过程一般为如下步骤:服务器绑定端口,等待客户端连接。客户端通过服务器的ip和服务器绑定的端口连接服务器。服务器和客户端通过网

2011-03-04 09:54:00 681

转载 使用ACE 库框架在UNIX中开发高性能并发应用

<br /> <br />使用 ACE 库框架在 UNIX 中开发高性能并发应用<br /><br /><br />ACE 开放源码工具包可以帮助开发人员创建健壮的可移植多线程应用程序。本文讨论创建使用 ACE 线程的应用程序的一些方法。<br />Adaptive Communication Environment (ACE) 是一个高性能、开放源码、面向对象的框架和 C++ 类库,它有助于简化网络应用程序的开发。ACE 工具包包括一个操作系统层和一个封装网络 API 的 C++ 外观(facades)集

2011-03-04 09:24:00 811

转载 define与inline的区别

<br />介绍内联函数之前,有必要介绍一下预处理宏。内联函数的功能和预处理宏的<br />功能相似。相信大家都用过预处理宏,我们会经常定义一些宏,如<br />#define TABLE_COMP(x) ((x)>0?(x):0) <br />就定义了一个宏。<br /><br />  为什么要使用宏呢?因为函数的调用必须要将程序执行的顺序转移到函数<br />所存放在内存中的某个地址,将函数的程序内容执行完后,再返回到转去执行<br />该函数前的地方。这种转移操作要求在转去执行前要保存现场并记忆执行的

2011-03-02 10:57:00 2437 1

转载 转:POSIX线程的创建与取消—pthreads线程库实例笔记1

<br />创建线程函数——pthread_create()#include <pthread.h><br />int pthread_create( pthread_t* thread, const pthread_attr_t* attr, void* (*start_routine)(void* ), void* arg );<br /><br /> 描述:<br />  pthread_create()函数创建一个新的线程,通过线程属性对象attr指定属性。<br />  被创建的线程继承了父线

2011-02-21 14:30:00 1483

转载 转:条件变量(Condition Variables)

<br />条件变量(Condition Variables)<br />条件变量是什么?条件变量为我们提供了另一种线程间同步的方法,然而,互斥量是通过控制线程访问数据来实现同步,条件变量允许线程同步是基于实际数据的值。 如果没有条件变量,程序员需要让线程不断地轮询,以检查是否满足条件。由于线程处在一个不间断的忙碌状态,所以这是相当耗资源的。条件变量就是这么一个不需要轮询就可以解决这个问题的方法。 条件变量总是跟互斥锁(mutex lock)一起使用。 下面是使用条件变量的比较典型的过程:<br />主线程

2011-02-21 09:55:00 4762 1

转载 转:深入理解Direct3D9

<br />深入理解D3D9对图形程序员来说意义重大,我把以前的一些学习笔记都汇总起来,希望对朋友们有些所帮助,因为是零散笔记,思路很杂,还请包涵。<br />其实只要你能完美理解D3DLOCK、D3DUSAGE、D3DPOOL、LOST DEVICE、QUERY、Present()、BeginScene()、EndScene()等概念,就算是理解D3D9了, 不知道大家有没有同感。有如下几个问题,如果你能圆满回答就算过关:)。<br />1、       D3DPOOL_DEFAULT、D3DPOOL_M

2011-02-18 11:30:00 679

转载 转:预编译头文件及编译选项

<br />        预编译头文件(一般扩展名为.PCH),是把一个工程中较稳定的代码预先编译好放在一个文件(.PCH)里。这些预先编译好的代码可以是任何的C/C++代码--甚至可以是inline函数,只它们在整个工程中是较为稳定的,即在工程开发过程中不会经常被修改的代码.。<br />    为什么需要预编译头文件?一言以蔽之:提高编译速度。一般地,编译器以文件为单位编译,如果修改了一工程中的一个文件则所有文件都要重新编译,包括头文件里的所有东西(eg.Macro宏、Preprocessor预处理)

2011-02-17 16:18:00 701

原创 转:ID3DXSprite简介

<br />简介:ID3DXSprite是DriectX 9.0里面的一个简单模块,在DriectX 9.0帮助文档里面对其功能的描术为:“向用户提供一套简单的在屏幕上实现精灵渲染的接口。”何为精灵渲染,说白了就是渲染2D画面,ID3DXSprite帮助用户透过简单的操作就能运用DriectX 9.0制作2D游戏(渲染2D图形),ID3DXSprite的功能还包括:帮助用户在3D游戏里面实现“公告牌”技术。下面,将对如何使用ID3DXSprite作详细分折。<br />  得到一个ID3DXSprite对像

2011-02-17 15:06:00 2124

转载 D3D资源管理类型

D3DPOOL_MANAGED:在创建时使用D3DPOOL_MANAGED 标志指定一个由系统管理的资源。由系统管理的资源在设备的丢失状态和操作状态间的转换中持续存在。通过调用IDirect3DDevice9::Reset 设备可以被重置,并且这类资源可以继续正常运作而无需重新载入图片。但是,如果设备必须被销毁和重建,那么所有用D3DPOOL_MANAGED 创建的资源也必须被重建。D3DPOOL_DEFAULT:在创建时使用D3DPOOL_DEFAULT 标志指定把资源放在默认的池中。在默认的池中的资源在

2011-01-21 16:04:00 908

原创 用irrlicht实现烟火粒子效果

用irrlicht实现烟火粒子效果算是加深对08.SpecialFX_vc8的学习吧。首先看irrlicht粒子系统的构成吧:粒子系统由粒子系统场景节点、粒子发射器、粒子影响器组成。粒子场景节点负责运行发射器来产生新的粒子,运行影响器更新粒子状态,更新粒子位置、存活时间等属性,绘制粒子等。粒子发射器负责根据当前时间判断是否发射新粒子,设置粒子属性。粒子影响器负责更新除粒子场景节点处理的属性之外的其他状态和属性。我要实现的烟火比较简单,就是从一点每隔一定时间喷发一定数目的粒子,每个粒子方向随机,所有粒子综合起

2011-01-06 22:16:00 1375

原创 2010/11/10

<br />2010/11/10<br />关键字:函数重载、函数指针<br />函数重载<br />出现在相同作用域中的两个函数,如果具有相同的名字而形参表不同,则称为重载函数(overloaded function)。<br />main函数不能重载。<br />如果两个函数声明的返回类型和形参完全相同,则将第二个函数声明为第一个的重复声明。如果形参表完全相同,但是返回类型不同,则第二个声明是错误的。<br />编译器会忽略函数的形参名字,下面的声明是等价的:<br />void func(int i)

2010-11-11 12:21:00 492

原创 2010/11/9

<br />2010/11/9<br />关键字:函数<br />零散知识点<br />1.      主函数main的返回值是有一定意义的,返回0代表正常运行,其他大部分返回值则表示失败.返回码的意义跟机器有关,cstdlib头文件中定义了两个预处理变量,分别表示程序运行成功和失败:<br />#defineEXIT_SUCCESS    0<br />#defineEXIT_FAILURE    1<br />2.      如果main函数没有显式返回值,则编译器会隐式的插入返回0的语句.<br />

2010-11-10 16:40:00 384

原创 2010/11/8

<br />2010/11/8<br />关键字:函数<br />函数零散知识点<br />通常函数不应该有vector和其他标准库容器类型的形参.调用含有普通的非引用vector形参的函数会复制vector中的每一个元素.<br />有两种方法避免,将形参改为引用类型或将需要处理的迭代器作为形参来传递容器.<br />数组做形参<br />1.      数组有两个特性,一是不能复制数组,二是使用数组名字时,数组名会自动转换为指向其第一个元素的指针.虽然不能直接传递数组,但是函数的形参可以写成数组的形式.

2010-11-10 16:39:00 397

原创 2010/11/7

<br />2010/11/7<br />关键字:使用预编译器进行调试<br /> <br />预编译变量<br />C++标准<br />#ifndefNDEBUG<br />    //...<br />#endif<br />VC8编译器<br />#ifdef_DEBUG<br />    //...<br />#endif<br /> <br />其他预编译变量:__FILE__、__LINE__、__TIME__、__DATE__<br />assert<br />另一种调试技术是assert(

2010-11-10 16:37:00 421

原创 2010/11/5

<br />2010/11/5<br />关键字:delete、类型转换<br /> <br />delete<br />1.      必须确保delete的指针是用new分配的地址指针.<br />2.      0指针可以delete,但是没有任何意义.<br />3.      多次重复delete同一块内存会破坏自由存储区.<br />4.      const动态对象也需要用delete释放掉.<br />constchar*p = newchar;<br />deletep;<br />5. 

2010-11-08 12:12:00 374

原创 2010/11/06

<br />2010/11/6<br />关键字:语句<br /> <br />零散知识点<br />1.      for循环中声明的变量在for循环外是不可见的,但是早期C++编译器还是支持的.VC8不支持,VC6支持.<br />2.      悬垂else.<br />if (/**/)<br />     if (/**/)<br />     {<br />     }<br />else<br />{<br />}<br />else实际是对应内层的if的.<br />else匹配给最后出现的

2010-11-08 12:10:00 343

原创 2010/11/04

<br />2010/11/4<br />关键字:算术表达式<br /> <br />零散知识点<br />1.      短路求值,&&和||.<br />2.      bool字面值的true为1,flase为0<br />if (val)         //正确<br />     ...<br />if (val == true)//错误<br />     ...<br />3.      位操作符操作signed的整型时,系统无法确保如何处理其操作数的符号位.所以强烈建议使用unsigned

2010-11-05 12:54:00 324

原创 2010/11/03

<br />2010/11/3<br />关键字:C风格字符串<br /> <br />C风格字符串(C-style character string)<br />以空字符null结束的字符数组.<br />charc1[] = {'C', '+', '+'};    //不是C风格字符串<br />charc2[] = "C++";              //是<br /> <br />C风格字符串标准库<br />必须包含头文件#include<cstring><br />cstring是strin

2010-11-04 21:25:00 380

原创 2010/11/02

<br />2010/11/2<br />关键字:指针和const限定符<br /> <br />用const限定指针<br />唯一的作用是不能通过解引用该指针的方式修改所指向的对象的值.<br />constint *p;           //const指针声明时可以不初始化,虽然是不被推荐的<br />constintval1 = 0;<br />intval2 = 0;<br />p = &val1;              //const指针可以指向const对象<br />p = &val

2010-11-02 17:32:00 346

原创 2010/11/01

<br />2010/11/1<br />关键字:指针<br /> <br />指针的声明、定义和初始化<br />理解指针声明语句时需要从右向左阅读.<br />char *p1, p2;<br />p2为char型变量,p1为char型指针.<br /> <br />一个有效的指针必须是以下三种状态之一:<br />1.      保存一个特定对象的地址.<br />2.      指向某个对象后面的另一个对象.<br />3.     0值.<br /> <br />一定要避免使用未初始化的指针.必须

2010-11-02 17:31:00 393

原创 2010/10/31

2010/10/31关键字:数组数组声明数组的维数必须用值大于等于1的常量表达式定义。包括整型字面值、枚举常量或用常量表达式初始化的const对象。即数组的维数必须在编译时确定。#includeusingstd::vector;constintbufsize = 10;intGetSize(){    return 0;}constinti = GetSize();                //i位于常量内存区中,未初始化intmain(){    chararray[i];             

2010-11-01 22:58:00 514

原创 2010/10/30

2010/10/30关键字:bitsetbitset使用bitset必须包含头文件和命名空间:#includeusing std::bitset;类似vector,bitset类也是一种模板,但其对象区别在于长度而不是类型.在定义bitset时要明确bitset含有多少位,必须在中给出长度:bitset bitvec;          //32位初始化为全0有下面几种初始化方式:bitset初始化方式bitset b;b有n位,初始化为全0bitset b(u);b有n位,初始化为unsigned lon

2010-11-01 22:33:00 329

原创 2010/10/29

<br />2010/10/29<br />关键字:string、vector、迭代器<br /> <br />可以用using std::cin;代替using namespace std;如果程序中只使用了cin。同理可以用using std::cout;using std::endl;等<br /> <br />头文件中应该只定义确实必要的东西。因为头文件还会被其他源文件多次引用,增加出错的机会还会增大程序体积.<br /> <br />string s;cin>>s;时将忽略开头的空格,在遇到后面第

2010-10-30 00:06:00 363

原创 2010/10/28

<br />2010/10/28<br />关键字:new、delete、allocator<br />string *sp = new string(“123456”);  //new表达式<br />实际有3个步骤:<br />1.     调用operator new标准库函数,分配足够大的原始的未类型化的内存,以保存指定类型的一个对象<br />2.      运行该类型的适当的构造函数,用指定初始化式构造对象<br />3.      返回新分配并构造的对象的地址<br />delete sp; 

2010-10-30 00:04:00 407

原创 2010/10/27

<br />2010/10/27<br />关键字:C/C++中的内存区域划分<br /> <br />C中的内存区域划分<br />1.      栈 - 由编译器自动分配释放。<br />2.      堆 - 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。<br />3.      全局区(静态区),全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域,程序结束释放。<br />4.      另外还有一

2010-10-27 21:52:00 396

原创 2010/10/26

2010/10/26关键字:基本内置类型、整型、浮点型、字面值常量、变量初始化C++标准规定了每个算术类型的最小存储空间,但不阻止编译器使用更大的存储空间。类型含义最小存储空间一般存储空间bool布尔型char字符型8位8wchar_t宽字符型16位16short短整型16位16int整型16位32long长整型32位32float单精度浮点型6位有效数字32double双精度浮点型10位有效数字64long double扩展精度浮点型10位有效数字96或128

2010-10-26 22:04:00 409

原创 2010/10/25

声明、定义、const、引用

2010-10-25 12:34:00 376

原创 Cohen-Sutherland算法

<!--v/:* {behavior:url(#default#VML);}o/:* {behavior:url(#default#VML);}w/:* {behavior:url(#default#VML);}.shape {behavior:url(#default#VML);}--> Normal 0 false 7.

2010-04-06 23:01:00 2452 1

转载 Bresenham算法

参考其他:http://liar.pangwa.com/2009/04/12/bresenham/ <!--v/:* {behavior:url(#default#VML);}o/:* {behavior:url(#default#VML);}w/:* {behavior:url(#default#VML);}.shape {behavior:url(#default#

2010-04-06 22:28:00 870

转载 利用注册表来注入DLL

    关键字:注册表,DLL,注入.    关键函数:无.系统安全:特殊注册表键值"AppInit_Dlls"  发布时间:2008.07.04 04:43     来源:赛迪网    作者:smallfrogs【赛迪网-IT技术报道】如果你对计算机安全有所了解,那么各种各

2009-02-05 15:26:00 5442

原创 Subclassing 初学总结

    关键字:子类化窗口,窗口过程.    关键函数:SetWindowLong,SetWindowLongPtr,CallWindowProc.    我们可以用SetWindowLong函数子类化一个窗口,使我们自己的窗口过程处理该窗口的大部分事件.不过有几点需要注意:    1.SetWindowLong只能用于Win32程序中,而SetWindowLongPtr可以用于64位

2009-02-04 17:42:00 3541 1

转载 sprintf()

sprintf的用法sprintf你知道多少 选自《CSDN 社区电子杂志——C/C++杂志》 在将各种类型的数据构造成字符串时,sprintf 的强大功能很少会让你失望。由于sprintf 跟printf 在用法上几乎一样,只是打印的目的地不同而已,前者打印到字符串中,后者则直接在命令行上输出。这也导致sprintf 比printf 有用得多。 sprintf 是个变

2007-09-17 11:47:00 1059

继承自BCB的定时器Timer

继承自BCB控件TTimer的定时器,运用函数指针方式定时调用其他类的函数..H,CPP文件在小test程序程序中自己找. 环境WINXP,BCB6.注意,在控制台程序中不能使用.

2008-10-08

GB8567-88软件开发规范文档(全).rar

全套的GB8567-88软件开发规范文档

2008-09-09

序列号和TCP/UDP重发协议课件

介绍了滑动窗口工作原理,连续ARQ协议的工作原理,连续ARQ协议的吞吐量,发送窗口与接收窗口,流量控制方式,捎带确认与累计确认等

2008-09-09

空空如也

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

TA关注的人

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