【问题标题】:Using a cpp project's dll & .lib file in python在 python 中使用 cpp 项目的 dll 和 .lib 文件
【发布时间】: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 项目中需要?

【问题讨论】:

    标签: python c++ dll


    【解决方案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 在这里没有任何作用。

    【讨论】:

      猜你喜欢
      • 2020-12-19
      • 1970-01-01
      • 2018-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-06
      • 2013-02-22
      • 1970-01-01
      相关资源
      最近更新 更多