[Python-de] Calldll;windll;dynwin

Martin v. Loewis martin at loewis.home.cs.tu-berlin.de
Wed Aug 8 18:21:10 EDT 2001


> ich versuche gerade mit Python 2.1 auf eine Windows-DLL zuzugreifen. Dazu
> wollte ich das Modul windll verwenden. Darin ist calldll enthalten. Nun
> wollte ich mir das vom Netz saugen und finde nur den Quellcode mit einer
> compile.bat.

Was für eine Windows-DLL ist das denn? Im allg. würde ich von calldll
abraten.

> Mein gcc unter cygwin bricht mit Fehler "LONG_BIT definition appears
> wrong for platform...

Das ist ziemlich schwierig zu analysieren. Eigentlich sollte LONG_BIT
den Wert 32 haben. Falls es den nicht hat, gibt es einen Bug in Deiner
Compilerinstallation; Du müsstest herausfinden, wo LONG_BIT denn
definiert ist und warum sein Wert nicht 32 ist.

> dllwrap bricht ab, weil er -lpython nicht finden kann.

Wenn man Python mit cygwin übersetzt, gibt es dann überhaupt eine
pythonxy.dll?

> Selbstcompiliert mit Visual C++ ergibt einen Link-Fehler auf
> python21_d.lib, die mein System natürlich nicht kennt.

Das ist nicht so natürlich. Du hast dem VC++ gesagt, es soll calldll
für den Debug-Mode übersetzen; Du müsstest dann auch Python für
Debugging übersetzt haben oder die Debug-Version der Import-Library
besitzen (die online erhältlich ist).

Alternativ kannst Du calldll für den Release-Mode übersetzen; dann
brauchst Du nur die python21.lib, die Du haben solltest.

> Gibt es keine "leichtere" Möglichkeit an dieses Modul zu kommen?

Es gibt vermutlich eine leichtere Möglichkeit, die Windows-DLL zu
benutzen. Calldll ist immer schwierig, und es fängt beim Übersetzen
erst an.

Ciao,
Martin



More information about the Python-de mailing list