可以[DllImport()]处理静态c库

时间:2014-11-19 11:51:18

标签: c# .net

我可以导入.lib扩展名的静态C库。

我有头文件:extern" C" __declspec(dllexport)的

我可以从头文件源代码中使用P / Invoke助手生成必要的代码,但问题仍然存在,

[DllImport()]可以处理已编译的C / C ++ lib文件吗?

1 个答案:

答案 0 :(得分:3)

DllImport通过引用模块(.DLL)导出表中定义的条目来工作。 .LIB文件不是模块,也没有根据.DLLs的导出表。

来自MSDN:

  

DllImportAttribute属性提供调用从非托管DLL导出的函数所需的信息。作为最低要求,您必须提供包含入口点的DLL的名称。 - Tell me more

你的问题:

  

可以[DllImport()]处理静态c库吗?

没有

但是你可以随时将.LIB链接到.DLL(假设你知道c / c ++)并且p调用生成的DLL,但这是一个间接解决方案,并不暗示“是”对你的问题。