我有一个由标题(.h)和库(.a)文件组成的API。
我从未接触过C,我需要从C#访问此API并与其功能进行交互。
关于此主题的大多数questions说我需要执行类似[DllImport("insert_the_dll_name_here")]
这样的操作来调用DLL方法。但我只有.h和.a文件。
我该怎么办?
我应该将这些文件编译到DLL中然后使用pInvoke吗?如果是这样,怎么样?
或者我应该写一个包装类?如果是这样的话?
感谢任何帮助。
答案 0 :(得分:5)
如果您的.a
文件包含Windows格式的目标文件,那么您可以提取存档(使用cygwin ar
工具)并将它们链接到C ++ / CLI项目中。 C ++ / CLI可以使用头文件,直接调用C函数,并创建C#可以像使用任何Microsoft提供的库类一样轻松使用的.NET类。
如果您的.a
文件包含Linux格式的目标文件,则需要回复提供这些文件的人,并要求为Windows重新编译代码。