在.NET的*.a库中使用C函数

本文关键字:函数 NET | 更新日期: 2023-09-27 18:21:46

我有一个API,它由一个头(.h)和库(.a)文件组成。

我从未接触过C,我需要从C#访问这个API并与它的函数进行交互。

关于这个主题的大多数问题都说我需要做一些类似[DllImport("insert_the_dll_name_here")]this的事情来调用DLL方法。但我只有.h和.a文件。

我该怎么办

我应该将这些文件编译到DLL中,然后使用pInvoke吗?如果是,如何?

或者我应该写一个包装类吗?如果是,怎么办?

感谢您的帮助。

在.NET的*.a库中使用C函数

如果.a文件包含Windows格式的对象文件,则可以提取归档文件(使用cygwin ar工具),并将这些文件链接到C++/CLI项目中。C++/CLI可以使用头文件,直接调用C函数,并创建.NET类,C#可以像任何Microsoft提供的库类一样轻松地使用这些类。

如果您的.a文件包含Linux格式的对象文件,那么您需要回到提供这些文件的人那里,要求为Windows重新编译代码。