使用c ++项目dll和; python中的.lib文件

时间:2014-07-25 01:30:15

标签: python c++ dll

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

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

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

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

1 个答案:

答案 0 :(得分:2)

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