将C#类库导入Visual C ++

时间:2009-02-16 06:56:14

标签: c# c++ dllimport

我有一个C#类库,其中包含需要与外部应用程序一起使用的方法。不幸的是,这个外部应用程序仅支持C / C ++中的外部API。

假设我在这个C#库中有一个takeIntReturnDoubleArray方法,它接受一个整数并返回一个双精度数组。我需要做的就是有一个C ++方法,它接受一个整数,调用C#库并返回一个双精度数组到调用应用程序。

因此,实质上C ++库只是充当C#包装器和外部应用程序之间的中介。

有一种简单的方法吗?我是否必须在C#端执行任何特殊操作才能将其轻松导入C ++?我看过一些关于使用#import语句的讨论,但我真的不知道在C ++方面我在做什么。

我应该采取什么方法?

2 个答案:

答案 0 :(得分:4)

这里有两个主要选项:

  1. C ++ \ CLI - 这允许您在同一源文件中同时拥有托管代码和非托管代码。然后,托管部分可以调用C#代码。
  2. COM Interop - 将您的.NET类型公开为COM接口并匹配可以从非托管C ++轻松使用的coclass。

答案 1 :(得分:1)

COM Interop是解决此问题的一种方法。您必须为要向C ++应用程序公开的C#库函数提供COM层。这可能是有意义的(http://msdn.microsoft.com/en-us/library/aa302324.aspx#usingframeworktools_topic10)。