2010-05-26 119 views
0

免责声明:我是新来的Windows编程,所以我的一些假设可能是错误的。如果有,请纠正我。ctypes DLL与可选依赖关系

我正在开发一个使用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中的示例项目(我对VS有0经验,所以请再纠正一下),它构建了32位和64位版本的示例项目。 AdditionalDependencies="TheLibName64.lib"

in the VCLinkerTool section。

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

因此,在我看来,我的问题是现在的问题是,当DLL加载时,使python ctypes DLL加载器加载这些可选的依赖关系。然而,我无法在ctypes文档中找到关于此的任何信息(也许是因为,作为睡眠noob,我不知道正确的术语)。

有没有办法在ctypes中做到这一点?我是否完全用错误的方式来解决这个问题?任何有关可选DLL依赖关系以及它们如何在窗口中加载的帮助或一般信息都将非常感谢。

由于

回答

0

当我用蟒的64位版本可以装入LibName64。应该早点尝试过!