0

我应该使用 Open CV,它可以用 C++ 编程并将其部署在 .NET 图形界面应用程序中。我真的很想使用 C# 来处理接口特征。

最好的方法是什么?

4

1 回答 1

3

我知道 C# 和 C++ 可以在同一个应用程序中使用的两种方式。

最简单的方法是使用 C++ 和 C# 编写的组件可以分开,这样一个组件依赖于另一个组件,但它们并不相互依赖。在这种情况下,只需创建两个程序集,一个在 C# 中,一个在 VC++ 中,并从另一个中引用一个。这是最简单的方法,尤其是因为它在 Visual Studio 的 UI 中受支持。

但是,如果存在相互依赖,则该方法将不起作用,即 A 类需要知道 B 类,B 类需要知道 A 类,其中 A 类要用 C++ 编写,B 类要编写在 C# 中。仍然可以使用 .NET 的一个鲜为人知的功能(称为多文件程序集或网络模块)以不同的语言编写类。

有关说明,请参见如何:构建多文件程序集多文件程序集。记住 C++ 编译器通常比其他编译器更聪明是很有用的。我似乎记得该过程是让 C# 将其一半编译为 NetModule,然后将其传递给 C++ 编译器和链接器,后者能够将其链接到 C++ 部分并创建最终程序集。

如果您只打算编写少量 C# 代码,另一种方法是学习 VC++ 语法以获取您想要使用的 .NET 功能并完全避免使用 C#。VC++ 可以像 C# 一样声明托管接口和类型,如果您不会在 C# 中编写太多实际代码,那么这可能会更容易。

于 2013-09-01T23:21:28.437 回答