38

我打算使用作为 COM 对象公开的各种对象。为了使它们更易于使用,我想将它们包装为 C# 对象。最好的方法是什么?

4

2 回答 2

42

如果库已经注册,您可以执行以下步骤让 Visual Studio 为您生成互操作程序集:

  • 打开您的 Visual Studio 项目。
  • 右键单击“参考”(在解决方案资源管理器中的项目下方),然后选择“添加参考”。
  • 选择 COM 选项卡。(如果你没有看到这个,你有一个不支持 COM 的项目类型。)
  • 选择您希望与之互操作的组件。
  • 选择“确定”。

这将是一个类或一组 C# 类,它们使用普通 C# 类包装所有 COM 接口内容。然后,您只需像使用任何其他 C# 库一样使用它。如果引用的导入运行良好,您可以像任何其他引用一样探索它,并且方法/结构/类/常量应该显示在该命名空间和智能感知中。

至少,这会让你开始。如果它部署在企业环境中或您可以控制的环境中,这可能就是您所需要的。

于 2009-03-11T18:55:27.483 回答
5

您可以(最初)只导入参考。如果您需要更多控制(或从 VS 的导入中获取错误),您可以在 windows sdk 中使用 tlbimp。这将创建互操作程序集。您可以从元数据中获取类定义。

编辑:如果您想使用 64 位,这实际上要复杂得多

于 2009-03-11T18:48:09.547 回答