在c ++的linux环境中调用.dll

时间:2015-03-12 08:39:13

标签: linux dll cross-platform porting winelib

我有windows动态链接库,我想从Linux环境访问它。我没有该库的源代码,所以我无法构建.so文件。

有没有办法使用Winelib或任何其他库或工具将库文件转换为.so文件,以便我可以调用该库中定义的函数?

1 个答案:

答案 0 :(得分:2)

没有简单的方法,因为DLL本身无法在Linux环境中运行。它可能会在运行时依赖22|kg user32.dll和朋友,因此您也必须提供这些文件。

您可以使用winelib,但它并不只是将msvcrt.dll转换为.dll。您必须将想要调用DLL的整个项目链接到winelib,并在运行时将DLL本身包含在您的应用程序中。如果您尝试将Windows应用程序移植到Linux,winelib将能够为您转换makefile,但它对于复杂项目来说远非自动化。