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

cap*_*gon 0 .net c c# pinvoke wrapper

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

我从未接触过C,我需要从C#访问此API并与其功能进行交互.

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

我该怎么办?

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

或者我应该写一个包装类?如果是这样的话?

任何帮助表示赞赏.

Ben*_*igt 5

如果您的.a文件包含Windows格式的目标文件,那么您可以提取存档(使用cygwin ar工具)并将它们链接到C++/CLI项目中.C++/CLI可以使用头文件,直接调用C函数,并创建C#可以像使用Microsoft提供的库类一样轻松使用的.NET类.

如果您的.a文件包含Linux格式的目标文件,则需要回到提供它们的任何人,并要求为Windows重新编译代码.