2017-01-09 6 views
0

私は、Windows上で登録済みのDLL(IAccessible2Proxy.dll)にフックするPythonアプリケーションを作成しようとしています。問題は、このDLLは型ライブラリを提供しないため、自分自身を生成するためにDLLを再コンパイルしたことです。私はこれをローカルにプロジェクトに格納し、Pythonでフックします。DLLは古いタイプライブラリと下位互換性がありますか?

IAccessible2Proxy.dllが使用される方法のため、既存のメソッドが更新されることはありません。ただし、タイプライブラリを更新する前に他のプログラムによって更新されることがあります。

別のプログラムによってDLLが更新された場合、生成したTypeLibは引き続き新しいDLLで動作するのですか、またはタイプライブラリが特定のDLLバージョンに関連付けられていますか?そのバージョンのDLL用に特別に生成されたタイプライブラリを使用する必要がありますか?

答えて

0

掘り起こした後、私は答えを見つけたようです。

NVDAプロジェクトのthis commitによると、古いタイプライブラリは、より新しいタイプのライブラリを持つ新しいDLL 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. 

のpython comtypesモジュールは、それにもかかわらず不平を言うが、これはサルパッチで修正することができますように見えます。

これは、メソッドが削除された後にアクセスされない限り、メソッドを削除するDLL更新を含みますが、それは推測です。それはまだテストしていない。

関連する問題