代码改变世界

随笔分类 - Only Windows

GDI+实践之路(二)

2004-10-25 22:42 by FantasySoft, 2581 阅读, 收藏, 编辑
摘要:在上一篇post中,我们已经通过建立一个简单的程序对GDI+有了一些初步的了解。接下来,为了能够提高开发效率,我打算将GDI+的API进行封装,提高代码的重用性。结果,我遇到了一个极其讨厌的问题。通常,我们都需要将class的定义写在.h头文件中,那么很明显就要将gdiplus.h包含在头文件中了,但是,不知道为什么,我认为OK的代码却编译不过,例如: #includegdi... 阅读全文

GDI+实践之路(一)

2004-10-19 01:33 by FantasySoft, 2133 阅读, 收藏, 编辑
摘要:当我写下这个标题的时候,你是不是会觉得我很花心呢?一项技术都没有摸透,就去看其他的技术了。我又何尝不想专注于一个方面呢?不过,跟着需求走就意味着“一日看尽长安花”了,目不暇接无所谓,脑袋瓜跟上了就好,你说呢? 实践之路的第一步是急着动手去做吗?不是的,应该对GDI+有个概括的了解才行。GDI+是GDI(Graphic Device Interface)的扩展版本,也是... 阅读全文

自动更新功能的实现尝试 之 更新

2004-10-15 23:58 by FantasySoft, 1725 阅读, 收藏, 编辑
摘要:随着网络的极大发展和普及,很多软件都增加了自动更新的功能,首当其冲的就是Windows了,对于网络游戏的客户端更是必不可少。最近要为一个软件实现自动更新的功能,正好有机会去思考一下这个功能实现起来需要做什么。 光从字面上看,自动更新至少包含两个方面:一个是更新,一个就是自动了。那么更新的话,我们可以认为是客户端通过HTTP、FTP或者其他连接从服务器上获得需要的资源。... 阅读全文

一步一步的接近线程同步

2004-09-13 23:55 by FantasySoft, 918 阅读, 收藏, 编辑
摘要:前几天,我尝试着建立了第一个基于SDK的窗口之后,那个窗口就像是通向一片未知世界的通道一样。我推开窗,发现外面的世界真的很精彩,同时也很无奈,因为我依旧有着很多的迷惑。"问题男"老大指出我的程序应该使用GetMessage方法,这样会在没有消息的时候,线程会被Suspend。如果使用PeekMessage则会几乎耗尽所有的CPU时间。老大的回复促使我重新去看了一下MFC的框架中处理... 阅读全文

MFC全接触(三)

2004-09-11 23:44 by FantasySoft, 2734 阅读, 收藏, 编辑
摘要:昨天"问题男"老大给我的那篇post:噢,我的第一个基于SDK的窗口写了回复:“为何要PeekMessage呢?这样会令你的程序占用能占用的所有cpu时间,不如GetMessage,在没有消息时线程将被suspend。”这个回复让我思考了很久,也让我有了更多收获。真的很喜欢这种感觉,自己写下了一些简单而不成熟的想法,高手看到了又不吝赐教,正是大家这种知识共享的精神让我每天都有莫大的收... 阅读全文

噢,我的第一个基于SDK的窗口(续)

2004-09-10 23:59 by FantasySoft, 798 阅读, 收藏, 编辑
摘要:首先,我要自我检讨一下,在学习的过程对于细节问题没有足够的重视,以致于忽视了问题产生的根源,同时也对自己解决问题的方法感到惭愧。期待自己能够尽快改正这些缺点,取得更大的进步。 我想,通常一个问题存在的原因不仅仅是单个方面的,它有可能是多个因素共同影响产生的结果。在面对问题的时候,应该冷静下来列举出导致问题发生的几种可能性,接着逐个排除,如果可... 阅读全文

噢,我的第一个基于SDK的窗口

2004-09-10 18:14 by FantasySoft, 3683 阅读, 收藏, 编辑
摘要:昨天看WinMain函数的修饰符WINAPI,看得眩晕,今天专注于WinMain函数的过程也不轻松。为了弄明白一个窗口从创建到销毁的过程,也是大费周章。不过还好,能够看到自己建造的第一个最原始的窗口,总算有了点满足感。 创建一个窗口涉及了几个概念:HWND、WNDCLASS(WNDCLASSEX)、RegisterClass(RegisterClassEx)和Crea... 阅读全文

一发不可收拾的学习

2004-09-09 22:12 by FantasySoft, 831 阅读, 收藏, 编辑
摘要:昨天还在感叹自己面对Windows开发就像一个傻瓜,今天随便找了个突破口,期待能够将自己掌握的知识联系起来,结果就是一发不可收拾,越看越迷糊,越想越凌乱。不管怎么样,先将今天看到的新面孔记个流水帐吧。 首先,突破口就是WinMain函数的修饰符WINAPI。从WINDEF.H这个头文件中,我得知WINAPI实质上就是__stdcall。那么什么是__stdcall呢?... 阅读全文

由QueryInterface方法想到的

2004-09-08 17:22 by FantasySoft, 2507 阅读, 收藏, 编辑
摘要:昨天向COM的世界迈出了第一步,虽然没有想象中那样举步维艰,却也走得不轻松。在初步了解DirectX的基础——COM之后,再次将注意力转到DirectX上来。正如一篇介绍COM的文章所说的,使用COM远比了解COM要简单得多。确实,在DirectX中使用COM都是那样的自然,跟一般函数的调用并无二致。但是,使用起来很自然还是没有阻止自己脑袋瓜中不断涌出的问号。大家看以下代码: L... 阅读全文

跨入COM世界的第一步

2004-09-07 21:11 by FantasySoft, 751 阅读, 收藏, 编辑
摘要:我们都知道.NET被称为更好的COM,而OLE、ActiveX等技术是以COM为基础的,大名鼎鼎的DirectX也大量使用了COM。尽管.NET战略让COM的地位日益下降,我们还是需要将足够的注意力放到COM的上面。由于工作的需要,我要开始关注DirectX的内容了,而COM又是基础,了解COM就成了首要的任务。 以前觉得COM很神秘,只是知道一些基本的概念:COM是... 阅读全文

MFC全接触(二)

2004-09-05 23:56 by FantasySoft, 2186 阅读, 收藏, 编辑
摘要:上一次和MFC邂逅,我和她谈得很投机。[1]分别的时候,她还依依不舍地对我说:“别忘了给我消息哦。”忙了一个月了,直到这几天,我才想起她告诉我的那句话。今天终于忍不住要给她发条消息了,但是我该怎么发呢?完了,她都没有告诉我怎么发呢?看来又得自己努力了。 我们都知道Windows应用程序是消息驱动(Message-Driven)的。而我们在编写应用程序的时候也是建立起消... 阅读全文

MFC 全接触 (一)

2004-08-04 01:59 by FantasySoft, 3234 阅读, 收藏, 编辑
摘要:以前对于MFC的了解十分肤浅,只知道MFC = Microsoft Foundation Class,后来还道听途说了很多关于她的风流韵事。有人说她如维纳斯一般美丽,也有人说她和犹大一般丑恶。现在为了手头上的事情,我要从新认识这位也许风华不在的女子了,不管她长得如何,我都得去揭开她那对于我来说神秘的面纱。 还是从打招呼开始吧,以免把她吓着了。于是,我战战兢兢的跟MFC... 阅读全文