自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 资源 (4)
  • 收藏
  • 关注

原创 OO思想:关于C++的接口类

作者: Crazii @ [email protected] 呵呵,本人是初学者,这边文章比较浅显,也只适合初学者.^_^ 多态是OO的一大特点.通常我们把只有纯虚函数的抽象类,叫做接口类(Interface Class),或者是协议(Protocol).习惯上类名会用大写I开头,但这不是必须的.比如下面的一个类声明.class IPool{public:

2009-03-13 00:38:00 1594

原创 深入分析虚析构函数

CRAZII @ CSDNfrom: 我自己的百度博客 http://hi.baidu.com/%CF%F4%CA%AE%C8%FD%C0%C9/blog/item/26f01108ac3dce37e9248889.html  析构函数何时该时虚拟的?  当你可能通过基类指针删除派生类对象时。    虚函数绑定到对象的类的代码,而不是指针/引用的类。如果基类

2009-02-24 15:40:00 831

原创 关于程序中的assert

 作者:  Crazii @ CSDN摘自我的百度博客: http://hi.baidu.com/%CF%F4%CA%AE%C8%FD%C0%C9/blog/item/687d1af44fdbfbe67709d73b.htmlassert在debug模式下是很有用的,可以比较方便的发现错误.assert是个宏,至于这个宏的定义可以去看看头文件了.而在release版本下面,assert会被

2009-07-01 10:16:00 888

原创 DOS下万年历TC源代码

CRAZII@CSDN  这个好像是大二时写的..用的TC(!....) 没有注释...以前发在MSN SPACE 上的.最近整理硬盘的时候发现已经从硬盘上删除了..所以在这发一份..省得以后再也找不到了.重新看了一下运行效果,字符界面上下左右键可以改年月,空格是跳转年份./* Xiaofeng @2005.10.25 *//* simple Calendar */#include #

2009-02-24 16:01:00 1089

原创 const member function can return non-const type member vars

 CRAZII@CSDN常量成员函数可以返回一个非常量类型的成员变量.之前对这个没有注意.class foo; //assume this class is already defined.class bar{private:       class foo* p_foo;public:       //compared with: const clas

2009-02-24 15:59:00 894

原创 DLL导出实例化的模板类

因为模板是在编译的时候根据模板参数实例化的,实例化之后就像一个普通的类(函数),这样才有对应的二进制代码;否则,没有模板参数,那么编译器就不知道怎么生成代码,所以生成的DLL就没有办法导出模板了.但是根据MSDN的描述,可以导出模板类的实例化后的代码(注意:这里不是指实例化模板类的一个对象),比如 template class singleton,那么可以导出singleton

2009-02-24 15:57:00 3551 2

原创 编程实现Windows下重启网卡(网络链接)

CRAZII@CSDN 简单介绍一下重启网卡的步骤.1.使用SetupDiGetClassDevs函数,获得设备信息列表2.SetupDiEnumDeviceInfo,枚举设备信息{3.SetupDiGetDeviceRegistryProperty(hDevInfo,&DevInfoData,SPDRP_CLASS,...,...)得到设备类型,如果类型是"N

2009-02-24 15:55:00 2951

原创 C Runtime 链接库不匹配导致全局静态对象没有析构

 用VC8编译方案,之前连接的时候,出现Libcmt 和其他一些C的实时运行库冲突,没有重视.但后来才发现那些全局对象根本没有析构.比如,在Debug模式下,一个子工程使用静态链接库(MTd),另一个使用动态库(MDd),则最后连接在一起时,会出现一大堆警告:库冲突.而且程序运行结束之后,全局对象根本没有析构(在析构函数中下断点).最后将C链接库统一之后,全局静态对

2009-02-24 15:52:00 922

原创 tchar相关的小技巧

 在使用了tchar之后,std中有些类型并没有t类型,于是自己添加上类似的定义#ifdef UNICODEnamspace std{static wistream& tcin = wcin;static wostream& tcout = wcout;static wostream& tcerr = wcerr;static wostream& tclog = wclog;typed

2009-02-24 15:35:00 699

原创 Unix,C的创建者的忏悔

  翻译整理:pigprince在前不久举行的一次关于计算机产业的发布会上,Ken Thompson,Dennis Ritchie和Brian Kernighan承认了由他们创建的Unix操作系统和C语言是来源于20年前的一个精心炮制的愚人节游戏!Thompson是在不久以前在UnixWorld软件开发论坛上说的这番话:“在1969年,AT&T刚刚完成一

2009-02-24 15:34:00 1303 3

原创 分析placement new

作者: Crazii @ CSDN转载请说明出处 1.简单说明 通常我们先分配一块内存空间,然后可以反复使用用placemnet new 来将对象创建在这个内存块上,从而减少new时内存分配的开销,提高效率. 笔者认为placement new 还有另一个用处,就是可以将对象创建在指定的内存上.(!-_-,这本来就是placemnet new 本分的工作),比如系统的内存有

2008-11-24 10:56:00 892

原创 编写自己的内核打印函数

原创文章,转载写明出处作者Crazii @ CSDN我看了minix的内核printf函数之后,发现它里面的goto有语句...我就读不下去了,于是自己写了一个.kprintf首先要了解的就是printf的变参.这得从c调用规则讲起.回顾一下c(cdecl)调用规则(vc里面__cdecl关键字,MASM里面的.model c)除了命名要加下划线之外,还有函数的调用:参数是从右至左入栈

2008-09-25 13:42:00 1139

原创 容器的类型相关性和无关性

可能这个问题无关紧要,但是我还是想说说自己的看法. Author: Crazii @ CSDN  迭代器的类型跟容器类型相关.但是,容器的类型参数(模板参数)有很多,其中有些是跟容器和迭代器的使用无关的.例如std::map>的迭代器,与std::map>的迭代器,理论上是可以通用的,因为迭代器跟容器的排序比较细节无关,它只与类型相关.容器本身也该如此,将内部的细节隐藏.因此我个人

2008-09-24 21:16:00 1014

原创 使用Visual Studio2005进行C和汇编的混合编程

因为VS2005已经集成了MASM(可以直接build),所以可以很方面的使用IDE来编程了.嘎嘎~~建立一个空工程,添加一个新C++源文件,内容如下:#include  #include  //extern "C" 表示使用C编译命名规则,而不使用C++的. extern "C" { extern const char szASM[];          //

2008-09-19 01:00:00 2410 3

原创 编写自己的操作系统

 NGOS是Not Good OS的缩写。虽然我为它想出很多名字,比如tinyOS或者zealOS等等,但是很不幸,我google一下发现已经有这些个名字了。索性就把自己的OS叫做NG...NGOS是保护模式下的OS,因为是学习linux0.11的引导代码写的,所以从它的引导和加载过程,可以看出linux的影子。不过与NGOS有自己的loader,并能够在FAT32文件系统下引导运行。这是仿照wi

2008-09-16 14:34:00 1345

原创 自定义Map容器 comparator

因为STL map内部使用的是红黑树.map默认的比较器有Less,Greater等等,在查找一个值时,不能立刻找到与该元素值相等的元素,而是要遍历到树的叶节点,记录不小于(不大于)该值的元素,最后再做一次比较确定是否相等.因为我们可以自定义比较器,比如string的比较,CEGUI中就用stringFastLess的仿函数(Functor),先比较字符串的长度,长度相同时再比较内容.

2008-09-04 16:32:00 1512 1

原创 [学习笔记]在windows下编译内核[大杂烩]

最近在做系统引导和实模式-保护模式切换.模仿早期linux的方法,把32位二进制镜像加载到物理地址0x00000000处,覆盖实模式下用的IVT.通常,像这种工作,需要一个虚拟机,比如Virtual PC或者Bochs来调试.而编译呢,GCC,也是个好东东.~ 在windows下,可以使用MinGW GCC或者是cygwin.笔者使用的是MinGW-GCC由于之前真的没有使用过GCC的那些

2008-03-16 12:00:00 1326 4

原创 使用windows的Internet连接共享功能

如果已经装了双网卡,通常的方法是使用一个代理软件,比如winproxy,经过简单的配置之后,就可以作为代理服务器,为局域网做Internet代理了~这里想说的是另一种方法,不使用第三方软件.打开网络链接,在连接入Internet的那个网卡上,点击右键选择[属性],然后选择高级(advanced)TAB页,在 [Internet连接共享]  组合框里,把"允许其他网络用户通过这台电脑连接到I

2008-03-16 11:08:00 2333 1

并行化游戏引擎的设计(Designing a Parallel Game Engine)中文版PDF

这是Intel网站上面的一篇文章,GameRes里面的兄弟翻译的,我顺手发到这里.感谢翻译的兄弟.

2009-02-28

DOS字符模式下的UI控件

个人作品,演示程序,支持鼠标,键盘热键.

2008-03-14

TC实现的通讯录

课程设计作品.源代码和可执行文件.实现了字段编辑功能.

2008-03-14

TC俄罗斯方块

以前用TC做的俄罗斯方块,已经把BGI链接进入,可以单独执行文件.

2008-03-14

空空如也

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

TA关注的人

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