自己制作的主框架系统
作者:蒋轶民 创作于2011年2月9日23:03:35
在初步了解windows运行机制后,我开始制作自己的主框架系统了。这个主框架系统能够为我们程序员服务,通过一系列简单的指令,能帮助程序员减轻很多负担,并且效果也挺好。
我写这个主框架系统的思路是这样的:在一个类中包含了窗口必须的成员变量,并且写一些简单的函数来隐藏内在的实现机制。为了使程序更有灵活性,我使用了回调函数。现在我就简单得介绍一下回调函数。
首先,回调机制的技术基础是函数指针。函数指针就是带有参数的指针,只要它和一些函数的原型一致,它们就可以互相赋值。在此基础上我们定义了回调机制。回调机制就是在一个函数的形参中定义一个函数的指针,在函数的内部引用它。表面上是调用者使用一个函数指针传给被调用者,实际上被调用者继续用这个函数指针来进行调用。这就是回调机制。稍后我就会我的系统中详细地阐明这个函数。
在我的主框架系统中,我定义了一个类CFrameworkSystem,它主要包含三个成员函数:StartFramework()、RunFramework()和EndFramework()。分别代表了开始框架、运行框架和结束框架。在定义的时候我使用了函数默认值,这样我们就可以任意地传入函数的参数了。
下面就是FrameworkSystem.h文件定义。
在这个系统类的实现中,我使用了回调机制,使得这个系统更加具有弹性。这个系统可以在窗口模式和全屏模式下运行,在窗口模式下运行的程序可以指定宽和高。这一切都是优化好了的。以下就是我的FrameworkSystem.cpp文件内容。
现在说说这个系统的性能。
这个主函数还是非常出色的。我用它和其它的两个系统(输入系统和数据存入和读取系统)联合测试一个DirectX程序,结果成功了。现在这个系统越来越健壮了。不过,这个系统在方便程序员的同时,我们也丢失了一些灵活性。不过我想自己的程序是为编辑游戏而服务的,这一些个性化的丢失也是不要紧的。
下面就是我联合测试的截图:
我对WinMain()函数是这样调用的:
程序的结果如图所示:
有了这三个系统,我开发程序的步子更快了。将这三个程序植入IDE内置的路径,我就可以不再多次复制粘贴再引用它们了。以后我会在此基础上开发出更加优秀的DirectX程序的!
如果大家没有时间上网看的话,这里有我的说明文档和源代码,源代码有丰富的注释,非常好懂。http://download.csdn.net/source/3017142