大学毕业前的最后一学期,在一家公司实习,当时的工作需要用到一些操作系统提供的组件。那时候只知道COM这个名词,并不知道到底是怎么回事,只知道上网到处找别人的源码解决自己的问题;那段日子到现在回忆起来都是灰色的,每天呆坐在电脑前,一个网站一个网站的查找自己需要的源码。但并不清楚自己到底在做什么;那时候对自己能不能成为一个程序员充满了怀疑。在实习结束返校的火车上,一夜间,我把一本《COM本质论》翻看了120多页。当我和当时的女友吹嘘自己一夜可以看100多页书的时候,她马上问我:看懂多少?当时我哑口无言。她忍受不了我那段日子的失落和抱怨,从那时候起,我们结束了那段简短的感情。到如今我还在一个人漂泊着,而上周她成为了别人的妻子。想不到用什么方式去纪念我迄今为止经历过的唯一一段感情,我和她的感情并不完全是因为COM结束的,但由于对COM的迷惑,使我走向了迷茫,失落;对自己失去了信心,在她面前变成了一个悲观失望的人。写这篇文章权当对这份感情的一份纪念吧。
[代码性质]
VC完整应用程序代码
[代码作者] junguo
[文件大小] 26K
[更新日期] 2006-1-11 10:15:00
[下载次数] 5066
--------------------next---------------------
1、在 2005 年一月刊的 MSDN 杂志文章中,你有一个例子程序的代码是用混合模式编写的。有没有可能动态加载 .NET 类或 DLL 并调用那些函数呢?假设我有一个本机 C++ 应用程序,我想允许用户在 .NET 中为该 C++ 程序编写插件。就像在 .NET 中使用 LoadLibrary 加载 DLLs 一样。
2、我正在用 Visual C++ 6.0 编写一个插件应用,它是一个 DLL,输出和接收纯虚拟接口指针。加载 DLL 后,EXE 便调用 DLL 中输出的 C 函数,该函数返回一个纯虚拟接口指针。然后 EXE 调用该接口上的方法,有时会传回另一个接口指针给 DLL 处理。
目前有人要求必须用 C#,Visual Basic .NET 和其它语言编写插件。我没有什么基于 .NET 的编程经验,不懂托管和非托管代码之间的通讯问题,我找到许多有关这方面的信息,但是越看越糊涂。我如何才能让用户编写基于.NET 语言的插件?
[代码性质]
VC可重用代码段
[代码作者] Paul DiLascia
[文件大小] 279K
[更新日期] 2005-9-27 19:36:00
[下载次数] 3983
--------------------next---------------------
上回书介绍了回调接口,在此基础上,我们理解连接点就容易多了。
着好复杂呀......呵呵,其实简单的紧:(注1)
1、一个 COM 组件,允许有多个连接点对象(IConnectionPoint)。
也就是说可以有多个发生“事件”的源头。上图就有3个连接点;
2、管理这些连接点的接口叫“连接点容器”(IConnectionPointContainer)。
连接点容器接口特别简单,因为只有2个函数,一个是 FindConnectionPoint(),表示查找你想要的连接点;另一个是 EnumConnectionPoints(),表示列出所有的连接点,然后你去选择使用哪个。在实际的应用中,查找法使用最多,占90%,而枚举法使用只占 10%,一般在支持第三方的插件(Plug in)时才使用。(你想写个 IE 的插件吗?我们后面就要讲到啦)
3、每一个连接点,可以被多个客户端的接收器(Sink)连接;
这个我们已经熟悉啦,还记得我们在上回书中为了管理多个回调接口,使用了 cookie 的方式进行区别吗?!
[代码性质]
VC完整应用程序代码
[代码作者] 杨老师
[文件大小] 79K
[更新日期] 2005-9-20 12:53:00
[下载次数] 6253
--------------------next---------------------
上回书介绍了回调接口,在此基础上,我们理解连接点就容易多了。
着好复杂呀......呵呵,其实简单的紧:(注1)
1、一个 COM 组件,允许有多个连接点对象(IConnectionPoint)。
也就是说可以有多个发生“事件”的源头。上图就有3个连接点;
2、管理这些连接点的接口叫“连接点容器”(IConnectionPointContainer)。
连接点容器接口特别简单,因为只有2个函数,一个是 FindConnectionPoint(),表示查找你想要的连接点;另一个是 EnumConnectionPoints(),表示列出所有的连接点,然后你去选择使用哪个。在实际的应用中,查找法使用最多,占90%,而枚举法使用只占 10%,一般在支持第三方的插件(Plug in)时才使用。(你想写个 IE 的插件吗?我们后面就要讲到啦)
3、每一个连接点,可以被多个客户端的接收器(Sink)连接;
这个我们已经熟悉啦,还记得我们在上回书中为了管理多个回调接口,使用了 cookie 的方式进行区别吗?!
[代码性质]
VC完整应用程序代码
[代码作者] 杨老师
[文件大小] 58K
[更新日期] 2005-9-20 12:44:00
[下载次数] 7607
--------------------next---------------------