2017-01-09 44 views
0

我想寫一個Python應用程序掛鉤到Windows上的註冊DLL(IAccessible2Proxy.dll)。問題是,這個DLL沒有提供類型庫,所以我重新編譯了DLL以生成我自己的。我將這個本地存儲在項目中並使用Python進行連接。DLL是否與舊的類型庫向後兼容?

由於採用IAccessible2Proxy.dll的方式,所以任何更新都不可能刪除現有的方法。但是,在我可以更新類型庫之前,它可能會被其他程序更新。

如果該DLL由另一個程序更新,我生成的TypeLib是否仍然可以使用較新的DLL,或者將Type Libraries綁定到特定的DLL版本?我是否需要使用專門爲該版本的DLL生成的類型庫?

回答

0

周圍挖掘後,看起來像我找到了答案。

根據NVDA項目中的this commit,較舊的類型庫應該與系統上存在的較新類型庫的較新的DLL 兼容。

# Windows updates often include newer versions of dlls/typelibs we use. 
# The typelib being newer than the comtypes generated module doesn't hurt us, 
# so kill the "Typelib newer than module" ImportError. 

看起來像蟒蛇comtypes模塊抱怨儘管如此,但這是可以固定與猴子補丁。

我認爲這包括刪除方法的DLL更新,前提是這些方法在刪除後不能被訪問,但這是一個猜測。還沒有測試過。