0

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

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

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

是否有捷径可寻?我是否必须在 C# 方面做一些特别的事情才能轻松地将其导入 C++?我看过一些关于使用#import 语句的讨论,但我真的不知道我在使用 C++ 时在做什么。

我应该在这里采取什么方法?

4

2 回答 2

4

您在这里有两个主要选择:

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

COM Interop 是解决此问题的一种方法。对于要公开给 C++ 应用程序的 C# 库函数,您必须有一个 COM 层。这(http://msdn.microsoft.com/en-us/library/aa302324.aspx#usingframeworktools_topic10)可能很有趣。

于 2009-02-16T07:01:51.090 回答