创建可执行 COM 作为 ATL 项目并在 C# 中使用它

Creating executable COM as ATL project and use it in C#

尝试在可执行文件中创建 COM 对象并在 C# 项目中使用它:

正在可执行文件中创建 COM。

使用 ATL 项目创建

添加class:

编译运行没有问题。

尝试在 C# 项目中使用但失败。项目的自注册...失败。可能出了什么问题? VS 以管理员身份启动。

您应该在 C# 项目中添加对服务器类型库的引用才能使用它:

  1. 在解决方案资源管理器中右键单击 References,然后单击 Add a reference
  2. 在引用管理器中选择 COM。
  3. Select 您的类型类型库(在您的示例中为 ComTstLib
  4. 在解决方案资源管理器中,打开刚刚添加的引用的快捷菜单,然后选择 Properties.In 属性 window,确保已设置嵌入互操作类型 属性为真。这会导致 Visual Studio 在您的可执行文件中嵌入 COM 类型的类型信息,从而无需在您的应用程序中部署主要的互操作程序集。

在部署时,您只需确保您的 com 服务器已经安装在客户端机器上。

另见 msdn