本文介绍如何使用C#编写进程外的COM组件。文章中所使用的example为All-In-One Code Framework 的CSExeCOMServer示例:

为了帮助读者更快体会到什么是进程外的COM组件,我建议您从上诉链接中下载最新的release,并按照如下步骤搭一个简单的测试环境:
Step1. 使用Visual Studio 2008打开CodeFx的solution文件(Visual Studio需要run as admin)。
Step2. 直接build其中的CSExeCOMServer项目。该COM组件的注册将自动完成(我稍后再解释它是如何被注册的)。
Step3. 编写一个简单的客户端以测试该进程外COM组件:打开notepad,并输入如下vbscript代码。将文件保存为client.vbs,并双击运行。此时,您将看到一个HelloWorld的message box被弹出。“HelloWorld”其实是由我们的COM组件的HelloWorld方法返回的一个字符串。
Set obj = CreateObject("CSExeCOMServer.CSSimpleObject")
MsgBox obj.HelloWorld
Step4. 在点击确定按钮关闭message box之前,打开Windows的任务管理器,并找到CSExeCOMServer.exe进程。我们CreateObject("CSExeCOMServer.CSSimpleObject")时创建的COM组件对象就是运行在这个进程里的,而非客户端进程。这也就是所谓的“进程外”COM server。

本文详述如何使用C#编写进程外的COM组件,通过CSExeCOMServer实例展示创建过程。首先,下载并运行CodeFx解决方案,创建并测试COM组件。接着,介绍了三种方法实现进程外COM组件,包括利用COM+和直接编写Service Component。尽管存在如配置复杂、不支持CoRegisterClassObject等挑战,但COM组件仍具灵活性,适合VBS脚本调用和某些特定场景,例如进程间通信和全局变量管理。
最低0.47元/天 解锁文章
3969

被折叠的 条评论
为什么被折叠?



