2010-05-26 139 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。應該早點嘗試過!