在python中使用cpp项目的dll和.lib文件

Using a cpp project's dll & .lib file in python

本文关键字:dll lib 文件 项目 cpp python      更新时间:2023-10-16

因此,使用标准的cpp编译器,我的应用程序链接到.lib文件,然后在运行时,只要dll与可执行文件在同一文件夹中,一切都神奇地工作。

但是在python中,.lib文件起什么作用?我知道你可以通过使用ctypes

来使用dll的函数
from ctypes import*   
dllHandle = cdll.LoadLibrary("C:\filename.dll") 
or
ctypes.WinDLL ("C:\filename.dll")

但是不使用.lib文件会失去什么?如果不需要,为什么在cpp项目中需要它?

如果在test.dll中导出void foo(),并且在应用程序中从main()调用此函数。构建应用程序链接时使用test。库中,链接器解析对此导出函数的调用。但实现这一目标的另一种方法是在运行时加载test.dll,获取void foo()的函数地址并调用它(您可以参考http://msdn.microsoft.com/en-us/library/windows/desktop/ms683212%28v=vs.85%29.aspx)。这不需要任何到test.lib的链接。在python中,您正在做类似的事情和测试。Lib在这里不起作用