具有可选依赖项的ctypes DLL

时间:2010-05-26 15:52:07

标签: python windows visual-studio dll ctypes

免责声明:我是Windows编程的新手,因此我的一些假设可能是错误的。如果是的话请纠正我。

我正在使用ctypes为C API开发一个python包装器。该API附带64和32 DLL / LIB。我可以使用ctypes.WinDLL('TheLibName')和调用函数等成功加载DLL。

然而,有些功能没有做到应有的功能。经过进一步调查后,似乎正在使用32位DLL,这是造成意外行为的原因。

我尝试过使用ctypes.WinDLL('TheLibName64'),但找不到模块。我已经尝试使用regsrv32注册DLL,但它报告没有入口点(当我尝试注册TheLibName时,它也报告没有入口点,其中由WinDLL()找到。

DLL附带了一个Visual Studio中的示例项目(我有0次使用VS的经验,所以请再次在这里纠正我),它构建了示例项目的32位和64位版本。在.vcsproj文件中,64位版本的配置包括:

AdditionalDependencies="TheLibName64.lib"

在VCLinkerTool部分。

在windows / system32中,有TheLibName.dll / .lib和TheLibName64.dll / .lib。

所以在我看来,现在我的问题是让python ctypes DLL加载器在加载DLL时加载这些可选的依赖项。但是我在ctypes文档中找不到任何关于此的信息(可能因为,作为一个打瞌睡的菜鸟,我不知道正确的术语)。

有没有办法在ctypes中这样做?我是以完全错误的方式解决这个问题吗?任何有关可选DLL依赖项的帮助或一般信息以及它们如何在Windows中加载都将非常感激。

由于

1 个答案:

答案 0 :(得分:0)

当我使用64位版本的python时,我可以加载LibName64。应该早点尝试过!