我打算使用作为COM对象公开的各种对象。为了使它们更容易使用,我想将它们包装为C#对象。对此最好的方法是什么?
答案 0 :(得分:35)
如果库已经注册,您可以执行以下步骤让Visual Studio为您生成互操作程序集:
这将是一个或一组C#类,它们将所有COM接口包装为普通的C#类。然后你就像任何其他C#库一样使用它。如果引用的导入运行良好,您可以像任何其他引用一样进行探索,并且方法/结构/类/常量应该显示在该命名空间和智能感知中。
至少可以让你入门。如果将其部署在公司环境中或您可以控制的环境中,则可能只需要这些。
答案 1 :(得分:8)
MSDN上有一篇很好的文章,解释了托管代码和非托管代码,并逐步引导您如何操作。 http://msdn.microsoft.com/en-us/library/ms973800.aspx#
玩得开心!
答案 2 :(得分:4)
您可以(最初)只导入参考。如果你需要更多的控制(或从VS的导入中获取错误),你可以在windows sdk中使用tlbimp。这将创建互操作程序集。您可以从元数据中获取类定义。
编辑:如果你想使用64位
,这实际上要复杂得多