在 python 中使用 cpp 项目的 dll 和 .lib 文件
Posted
技术标签:
【中文标题】在 python 中使用 cpp 项目的 dll 和 .lib 文件【英文标题】:Using a cpp project's dll & .lib file in python 【发布时间】:2014-07-25 01:30:14 【问题描述】:因此,使用标准 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】:如果 void foo() 在 test.dll 中导出,并且此函数从应用程序中的 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 在这里没有任何作用。
【讨论】:
以上是关于在 python 中使用 cpp 项目的 dll 和 .lib 文件的主要内容,如果未能解决你的问题,请参考以下文章