Re: [Python-de] Laden einer *.dll

Hallo,
vielen Dank für die Tipps, habe jetzt mal wieder ein wenig rumprobiert und bin leider noch nicht weiter. Auch wenn ich mit pyinstaller die *.exe bauen lassen, funktioniert das Programm nur auf meinem Rechner.
Es gibt Funktionen in der *.dll, für die brauche ich keine Kommunikation mit der Messnabe, wenn ich diese Aufrufe erhalte ich auch die Richtige Rückgabewerte. Somit ist meine Vermutung das es "nur" noch an dem Kommunikationsaufbau zwischen Programm und Messnabe liegt.
Gibt es eine Möglichkeit herauszufinden, was auf meinem Rechner von dem Programm genutzt wird, dass es funktioniert? Vielleicht finde ich dann ja raus warum das auf anderen Rechnern einfach nicht klappen will.
Oder gibt es vielleicht eine andere Möglichkeit statt ctypes, sofern es daran liegen sollte?
Viele Grüße Janina

Hallo Janina
Am 27. Januar 2012 13:55 schrieb jsapen@googlemail.com:
Gibt es eine Möglichkeit herauszufinden, was auf meinem Rechner von
dem Programm genutzt wird, dass es funktioniert? Vielleicht finde ich dann ja raus warum das auf anderen Rechnern einfach nicht klappen will.
Du könntest mit dem Process Monitor ( http://technet.microsoft.com/en-us/sysinternals/bb896645) schauen, welche Dateien beim Programmstart bzw. Zugriff auf das Gerät geladen werden und ob vielleicht eine dieser Dateien auf den Systemen, wo es nicht läuft, fehlt.
Hast Du mal probiert, was auf den anderen Rechnern passiert, wenn Du keine EXE baust, sondern dort direkt Python installierst und dann das Programm laufen läßt?
Viele Grüße
Daniel

Hallo Janina,
willkommen in der DLL-Hölle! (So heißt der besondere Ort, an dem wir Windows-Anwender mit eben diesen Problem gefoltert werden)
Was der erfolgsversprechende Weg ist: depends.exe
Findest Du als "Dependency Walker" unter http://www.dependencywalker.com/
Mit depends prüfst Du, von welchen DLLs Deine DLL abhängig ist. Dort, wo das Programm nicht funktioniert, zeigt depends die fehlenden Libraries an. Dann heißt es diese suchen; Lizenzbedingungen prüfen, und bei vorhandener Lizenz dann auf den Zielcomputer transferieren.
Bester Gruß
Harald
2012/1/27 jsapen@googlemail.com
Hallo,
vielen Dank für die Tipps, habe jetzt mal wieder ein wenig rumprobiert und bin leider noch nicht weiter. Auch wenn ich mit pyinstaller die *.exe bauen lassen, funktioniert das Programm nur auf meinem Rechner.
Es gibt Funktionen in der *.dll, für die brauche ich keine Kommunikation mit der Messnabe, wenn ich diese Aufrufe erhalte ich auch die Richtige Rückgabewerte. Somit ist meine Vermutung das es "nur" noch an dem Kommunikationsaufbau zwischen Programm und Messnabe liegt.
Gibt es eine Möglichkeit herauszufinden, was auf meinem Rechner von dem Programm genutzt wird, dass es funktioniert? Vielleicht finde ich dann ja raus warum das auf anderen Rechnern einfach nicht klappen will.
Oder gibt es vielleicht eine andere Möglichkeit statt ctypes, sofern es daran liegen sollte?
Viele Grüße Janina _______________________________________________ python-de maillist - python-de@python.org http://mail.python.org/mailman/listinfo/python-de

Am 27.01.2012 14:40, schrieb Massa, Harald Armin:
Findest Du als "Dependency Walker" unter http://www.dependencywalker.com/
Danke für den Tipp :-) Damit können wir bei PyInstaller vielleicht die eine oder andere Bug-Anfrage abstellen.
Kennst Du auch ein Windows-Tool, mit dem man sehen kann, welche Dateien geladen werden? Unter Linux würde ich dafür `strace -e trace=open` nehmen.

Hartmut,
Findest Du als "Dependency Walker" unter http://www.dependencywalker.**
Danke für den Tipp :-) Damit können wir bei PyInstaller vielleicht die eine oder andere Bug-Anfrage abstellen.
Kennst Du auch ein Windows-Tool, mit dem man sehen kann, welche Dateien geladen werden? Unter Linux würde ich dafür `strace -e trace=open` nehmen.
Jepp, von Mark Russinovich der Process Monitor, inzwischen von Microsoft
assimiliert:
http://technet.microsoft.com/de-de/sysinternals/bb896645
Gruß
Harald
participants (4)
-
Hartmut Goebel
-
jsapen@googlemail.com
-
Massa, Harald Armin
-
Szoska, Daniel