自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

转载 欢迎使用CSDN-markdown编辑器

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl

2015-02-23 12:49:29 590

原创 VS2005+DirectX 9平台配置出现的问题以及解决方案--Game Scripting Mastery

    又被清华大学出版社给忽悠了,提供的光盘里写着不提供DirectX sdk下载,给了个链接让我自己去下,我看了下链接的DirectX sdk版本是dxsdk_jun2006.exe,于是就down了一个,这个版本是DirectX 9的版本,哪晓得down了后安装后发现英文书并不是用的这个版本,导致VC6根本和这个版本不兼容,换VC2005吧,DirectX 是没问题了,但由于英文原版的例子是

2008-07-13 11:50:00 5718 3

原创 Direct9+VS2005 读取bmp位图时,_lseek()函数断言报错分析

    这是个很古老的问题,因为游戏编程常常需要载入bmp图像到屏幕中,虽然对位图的载入函数有很多版本,但是大体操作都一样,会用到一般的文件操作如open,read,wirte,seek。而在VS2005中,编译这种带lseek的函数,常常出现如下错误对话框:                                图1断言错误    下面是《游戏脚本高级编程》的载入bmp位图的

2008-07-01 23:03:00 5873 16

原创 有感于《游戏脚本高级编程》的劣质翻译

    Alex Varanese的《Game Scripting Mastery》是本不可多得的好书,我在网上试读几章后就决定买一本,看了下有中文翻译版的,于是花了70多块钱在网上订购了一本,从此,噩梦开始了。    以前基本没买过清华大学出版社翻译的书,我学C/C++时看的基本都是侯捷老师的作品,不管是亲自撰写还是翻译,侯捷老师都能做到认真二字,每一行代码,每一句翻译稿都经过仔细推敲,甚至

2008-06-17 14:13:00 5246 9

原创 COM技术7

      回忆一下COM技术5中我们创建组件的方法,客户以DLL的名称做为参数.装载此DLL并调用其中所输出的函数CreateInstance.这个函数可以建立一个组件的实例并给客户返回一个IUnknown接口的指针.但是组件对我们来说仍是不透明的,我们需要知道实现组件DLL的位置.但是COM组件实际上可以透明地在网络上(或本地)被重新分配位置,而不会影响本地客户程序.所以,由客户端来调用D

2008-01-16 15:51:00 1567 1

原创 'IActiveDesktop' : undeclared identifier 的处理

     在一个COM例子中,编译出现了错误,这个例子很简单,用vc新建一个Win32 Console Application项目,然后选择An application that supports MFC,然后加入如下函数,并在_tmain()里调用.TestIActiveDesktop()...{    WCHAR   wszWallpaper [MAX_PATH];     CStri

2008-01-07 22:35:00 6711 1

原创 C语言的数组初始化

    这是很基础的东西,但基础的重要性不言而喻,我敢肯定这个知识点我肯定曾经了解过,但现在,我不敢确定,由此可见纪录的重要性,这世界没有什么捷径,找对方向,然后不停重复.所以从今天开始,我会比较详细的纪录这些比较小的知识点,其实还是有不少有意思的地方的.    写这篇文章的起因在于>第七章新东西太多,看的我目不暇接,所以在网上找了些例子看,其中就有一个例子中出现了这样的语句: ...

2008-01-05 16:54:00 229786 18

原创 COM技术6

    这一章关注的细节问题,包括HRESULT,GUID,还有注册表和一些系统函数.先来看HRESULT,COM中鼓励函数返回的值都为HRESULT类型,这样可以方便的监控组件的行为.如果接口确实需要返回一个值,可以使用一个用于输出的行参.我想,这应该是基于返回值在COM中的重要性要大于通常的C和C++编程,COM编程由于把接口的实现者和使用者分开了,所以使用者在使用时必须要查询,而以查询的结果

2007-12-20 16:08:00 2186

原创 COM技术5

      在前面四章中,可以看到将客户和组件程序分开是大势所趋,我以前的思考是组件程序能编译成一份obj,然后客户端就直接用这个obj,而不再编译组件部分的程序.这样,就算组件部分程序有变化,只要替换掉obj再编译客户端的程序就可以了.所以我做了尝试,把组件和客户端的代码分开到独立的文件中.这其实还是属于静态链接的形式,因为决定程序用哪个组件提供的接口是在编译期间根据不同的obj来决定的,如

2007-12-06 10:30:00 1376

原创 COM技术4

 第四章 引用计数        这章引出了一个控制权的问题,谁将控制组件的生存期,落到语言层面就是,谁将负责new和delete.在所有组件都要继承的IUnknown接口中AddRef和Release这两个成员负责了组件生命期的管理.从而可以去掉客户代码中的delete语句.        对客户而言,它并不知道COM组件的细节,以前觉得COM编程会给用户提供一个头文件,但现在看来不是如此,客户

2007-11-01 13:33:00 796

原创 COM技术3

        这一章主要介绍QueryInterface函数,我觉得其中最重要的是了解程序的整体结构.即包含哪几个文件,每个文件有哪些类,每个类是做什么的.书中有个完整的例子.代码如下:#include iostream.h>#include objbase.h>//To Compile use:cl IUnknown.cpp UUID.libvoid trace(const char*

2007-10-30 16:11:00 1097 1

原创 设计模式-Abstract Factory模式

        还是一个创造型模式,可以简单的认为,创造型模式就是对用户使用new的一个封装,封装作为面向对象一个重要的特性,它绝对不是一对大括号那么简单,他重要的是封装变化点.如果没有变化,那就别封装吧,直接让用户new吧,这样效率是最高的,但因为会有变化,所以才会有面向对象和设计模式.抽象工厂是应对这样的一系列变化的,比如我们最初需要一个road类,用以表现我们游戏项目的道路,那么,我们可以简

2007-10-29 10:57:00 677

原创 COM技术2

第二章 接口        接口是《COM技术内幕》的第二章,接口对COM的意义不言而喻,要想实现软件设计的组件化,组件间的良好稳定的接口定义是首要条件.对DLL而言,接口就是它所输出的那些函数;C++类的接口则是该类的一个成员函数集.而COM的接口也包括了一些函数,但就本质来说,COM的接口是一个包含函数指针数组的内存结构.记住COM是个定义上的东西,我们用其他方法让COM的由定义变为实现,在C

2007-10-27 17:37:00 839

原创 设计模式-Singleton模式

创建型模式的产生是基于这样一种思想:尽量将权利控制到类的创建者而不是使用者中.我们当然可以在我们的main()函数中保证我只有一个Singleton类.但是 Singleton模式的诞生,让类的使用者可以关注于它需要考虑的一些特殊逻辑,而将比较通用的操作封装在类的创建之中,减少了类使用者的负担.下面是C++实现: #include iostream.h>class Singleton.

2007-10-26 16:24:00 1000 1

原创 COM技术1

 我开始学习COM技术了,想想看有这样一种技术,让软件的开发充分组件化,向工厂装配那样,可以根据需要自由定制,这不是软件的工程初衷吗?COM技术让这一切变得可行,我仿佛回到童年时那个堆积木的年代,我有个构想,然后去搭,我可以换不同的门,不同的颜色,但是一切看来都还是我想要的房子。现在对COM的理解是,COM不是一门编程语言,而是一个标准,COM本身不提供实现,不过我们可以用C++很好的实现它,

2007-10-26 12:19:00 767

原创 VC中TabCtrl控件一些常用接口

 Tab Control是VC自带的控件,它其实只是实现了标签切换,所以需要自己控制下面控件的显示和隐藏,不是很方便,所以还是尽量用属性页。一些常用的操作如下: BOOL CTabCtrDlg::OnInitDialog()...{    ...        // TODO: Add extra initialization here    m_tab.InsertItem(0,"t

2007-10-26 11:38:00 1268

原创

 我还是决定开始写Blog了,虽然有Q后不再和别人分享内心的秘密,但有些东西还是需要纪录的,这些东西先于爱情出现,以后也会和爱情共存。这些东西可以称之为好奇心,保持童年时对生命的好奇,忘掉理所当然,每一天都是充满无数可能性,幸福,快乐。也许,只有对人生永远保持鲜活的态度才不会沉沦,而在此,我将纪录我对技术的新鲜认同,是为序。

2007-10-26 10:29:00 580

空空如也

空空如也

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

TA关注的人

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