其他分享
首页 > 其他分享> > 从静态C库调用函数

从静态C库调用函数

作者:互联网

我有一个本地C库(静态即.lib目标).我希望在我的C#项目中使用此文件中的某些功能.对于dll,我可以使用它们.如何针对静态库执行此操作?

我读了this question,David的回答是,您只能为dll而不是lib进行pinvoke.

解决方法:

通过将静态库链接到更大的模块来使用它.在Windows中,这意味着DLL或可执行文件.

它们并不孤立,只有将它们链接到更大的模块时才有意义.因此,这意味着要使用pinvoke,您需要构建一个包含该库的DLL,并将其pinvoke到该DLL.

作为pinvoke的替代方案,您可以制作混合模式C/C++LI程序集.将静态库链接到该C/C++LI程序集,并通过C托管类公开功能.然后,您的C#代码可以使用该托管类.

标签:c,pinvoke
来源: https://codeday.me/bug/20191122/2058452.html