0

我想在我的 C# .net 应用程序中为一个大型项目使用一组非托管 C++ 库。下载库的代码后,我注意到使用库的演示项目实际上是在 C++/CLI 中完成的。

由于演示项目是在 C++/CLI 中完成的,因此作者没有提前在此演示应用程序的外部依赖项文件夹中的头文件中添加大部分类型定义和接口定义。

如果可以,我该如何使用这些定义与这些托管的 C++ dll 进行互操作?

回顾一下:

  1. 库是用非托管C++编写的

  2. 演示项目是用托管C++ 编写的,具有为使用未管理的 C++ dll 而创建的类型定义和接口定义,它们位于“外部依赖项”文件夹中,并且是头文件 (.h)。

  3. 我想在我的 C# 项目中使用这些非托管 C++ dll,我可以以某种方式使用这些定义与它们互操作吗?

    4.如果不是,我与他们互操作的最佳选择是什么?COM互操作?

4

1 回答 1

0

我想你正在寻找这个......

这是来自 C# 的 FMod DLL 包装器的示例

[DllImport (VERSION.dll)]
private static extern RESULT FMOD_DSPConnection_GetInput        (IntPtr dspconnection, ref IntPtr input);

我知道这是很多工作,但比重写非托管 DLL 要好得多。

不知道您打算使用哪个库,我只能希望这会有所帮助

于 2013-10-17T07:00:51.930 回答