摘要:
在上一篇中,介绍了怎么样用动态链接库去实现COM,但组件对我们来说仍是不透明的,我们需要知道实现组件DLL的位置,必须自己来加载组件的CreateInstance函数来获得组件的指针.在书中第一篇就曾经提到过:COM组件可以透明地在网络上(或本地)被重新分配位置,而不会影响本地客户程序.所以,由客户端来调用DLL并不是什么好主意.必须有一种更好的办法让组件的实现更透明,更灵活!
于是,就引入了类厂的概念.什么是类厂,类厂也是一个接口,它的职责是帮我们创造组件的对象.并返回给客户程序一个接口的指针.每个组件都必须有一个与之相关的类厂,这个类厂知道怎么样创建组件.当客户请求一个组件对象的实例时,实际上这个请求交给了类厂,由类厂创建组件实例,然后把实例指针交给客户程序。 阅读全文
摘要:
1.COM中的HRESULT:
2.COM中的GUID:
3.组件在注册表中的结构:
4.ProgID和CLSID之间的转换 / CLSID和字符串的转换:
5.Dll的注册.
6.COM库函数
7.在组件中如果分配内存,在客户中怎么释放? 阅读全文
摘要:
上一篇文章里,在一个CPP文件中实现了组件IX,IY,及组件CA,以及在客户端对接口的查询,但其还不是一个COM,COM的许多特性还没有被展现出来.比如,用动态链接库实现,没有这个我就不能根据需要随意的加载和卸载组件,组件无法复用等功能。
以下这篇笔记将详细的介绍如何用动态链接库去实现COM组件。 阅读全文
摘要:
(注明,这两篇都是转贴。文章不错,怕以后找不到。故转之)
COM——到底是什么?——COM标准的要点介绍,它被设计用来解决什么问题?
基本元素的定义——COM术语以及这些术语的含义。
使用和处理COM对象——如何创建、使用和销毁COM对象。
基本接口——描述IUnknown基本接口及其方法。
掌握串的处理——在COM代码中如何处理串。
应用COM技术——例子代码,举例说明本文所讨论的所有概念。
处理HRESULT——HRESULT类型描述,如何监测错误及成功代码。 阅读全文
摘要:
走马观花看COM服务器——描述COM服务器的基本要求。
服务器生命其管理——描述COM服务器如何控制加载时间。
实现接口,从IUnknown开始——展示如何用C++类编写一个接口实现并描述IUnknown之方法的目的。
深入CoCreateInstance()——探究CoCreateInstance()的调用机理。
COM服务器的注册——描述完成服务器注册所需要的注册表入口。
创建COM对象——类工厂——描述创建客户端要使用的COM对象的过程。
一个定制接口的例子——例子代码示范了上述概念。
一个使用服务器的客户端——举例说明一个简单的客户端应用程序,用它来测试COM服务器。
其它内容——有关源代码和调试的注释。 阅读全文
摘要:
学习VC++时经常会遇到链接错误LNK2001,该错误非常讨厌,因为对于编程者来说,最好改的错误莫过于编译错误,而一般说来发生连接错误时,编译都已通过。产生连接错误的原因非常多,尤其LNK2001错误,常常使人不明其所以然。如果不深入地学习和理解VC++,要想改正连接错误LNK2001非常困难。
阅读全文
摘要:
这是今天在读《COM技术内幕》这本书时模拟COM而写的一段代码,包括了基本的接口(IX,IY), 组件的实现(CA),以及对组件的调用。
这段代码知识点涵盖了此书的前四章,还没有实现的是,把组件,接口放到动态链接库去实现。
这本书的第五章就讲到了动态链接库库对COM组件的封装。先在此把前面的代码总结,并保存下来。 阅读全文
摘要:
一、常用快捷键F1 显示当前程序或者Windows的帮助内容。F2 当你选中一个文件的话,这意味着“重命名”F3 当你在桌面上的时候是打开“查找:所有文件” 对话框F10或ALT激活当前程序的菜单栏windows键或CTRL+ESC 打开开始菜单CTRL+ALT+DELETE 在win9x中打开关闭程序对话框DELETE 删除被选择的选择项目,如果是文件,将被放入回收站SHIFT+DELETE删除... 阅读全文
摘要:
重拾WinAPI,在设计Windows程序时,以求知其然,知其所以然。
这一章简单记叙了Win API之GDI函数。 阅读全文
摘要:
What if you want an edit control (in a dialog or a form view) that accepts only numeric characters? That's easy. You just set the Number style in the control's property sheet. If, however, you want to... 阅读全文
摘要:
在Windows中,虚拟内存技术使一个进程内的代码访问另一个进程内的代码变得不那么容易。当然,这个不容易带来了很强的健壮性。因为即使本进程由于内存改写错误,导致程序崩溃,但另一个进程依然相当安全。
今天讲的就是:打破进程的边界,让我们的代码到其它进程的老家去逛逛。
阅读全文
摘要:
学而时习之,不亦悦乎!这篇文章一些这两个月在学VC过程中的笔记,因为学的时候当时记得,过后特容易忘,所以保留下来,以后开发时用得着! 阅读全文
摘要:
用一句话来记录一下:
夫夷以近,则游者众;险以远,则至者少;而之奇伟、瑰怪、非常之观,常在於险远,而人之所罕至焉,故非有志者不能至也。有志矣,不随以止也,然力不足者,亦不能至也。有志与力,而又不随以怠,至於幽暗昏惑而无物以相之,亦不能至也。
阅读全文
摘要:
今天下午写的,关于列举出系统内所有运行的进程信息和模块信息,还不完全,有待加工 阅读全文
摘要:
UT测试星期一完成,程序的式样变更修改昨日亦全部做完。总算可以告一段落了。今天开始闲了,突然闲下来都不知道做什么。项目的计划完成日期要到8.11,中间暑假八天。这样还有七天都不知道要忙些什么。总体感觉 :文档真要命 阅读全文
摘要:
COM 组件设计与应用 总共十七讲,篇篇精彩,对COM有个清晰的认识!跟着例子做一遍,然后学习《COM技术内幕》,《深入解析ATL》,《COM本质论》,可以对COM及组件开发有个比较深的认识了.最近一会儿切入Windows,一会儿切入Linux,搞得头都比较晕.看来要“两手都要抓,两手都要硬”了. 阅读全文
摘要:
今天在自己的FC4机器上安装FTP服务器,让他人通过FTP共享资料.
在网上查阅了一翻,比较常用的FTP服务器有:Wu-FTP, ProFTP, VSFTP.
我选中了VSFTP,不为别的,因为它叫Very Secure嘛.它的设计本来就是以安全性来考虑的.
去主站点下了VSFTP的2.04版本,不大,一百多KB. 下载地址是:ftp://vsftpd.beasts.org/users/cevans/vsftpd-2.0.4.tar.gz
下完了之后make,在make install之前根做N步工作.
1)需要添加nobody用户 #useradd nobody
2)如果make没产生/usr/share/empty目录的话,建立该目录, #mkdir /usr/share/empty
3)如果FTP需要匿名(anonymous)用户的话,需要建立ftp这个用户,并指定其HOME目录为/var/ftp #usera 阅读全文
摘要:
自己作一张软盘的linux 好些时候,我们需要一个只要一张软盘就能启动Linux 的系统,比如说做路由器。但是我们该怎样做呢? 也就是说我们要把Kernel和FileSystem都做在一张3.5'的盘上。我们先把FileSystem 分解成如下几个部分吧。 1. /bin目录下的文件 bin目录通常是放置系统的一些基本命令文件的目录,要保证你的系统能够正常启动而且能够完成必要的功... 阅读全文