【问题标题】:Creating executable COM as ATL project and use it in C#创建可执行 COM 作为 ATL 项目并在 C# 中使用它
【发布时间】:2017-06-24 10:58:47
【问题描述】:

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

在可执行文件中创建 COM。

使用 ATL 项目创建

添加类:

编译和运行没有问题。

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

【问题讨论】:

  • 工具箱需要一个 ActiveX 控件,没有任何迹象表明您实际创建了一个。好吧,你没有,它不可能是一个 EXE 项目,并且“ATL 简单对象向导”不会创建一个。这并不简单。改用 Project > Add Reference,代码中的 new 语句。我也非常,非常强烈建议您不要创建 EXE 服务器,当您从托管代码中使用它们时,它们有许多非常锋利的边缘,当 COM 不存在时,它们总是会导致大量出血很好理解。

标签: c# visual-studio-2010 com atl


【解决方案1】:

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

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

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

另见msdn

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-17
    • 1970-01-01
    • 1970-01-01
    • 2013-06-21
    • 1970-01-01
    • 2011-08-09
    • 2014-12-17
    • 2014-08-05
    相关资源
    最近更新 更多