Einzelnen Beitrag anzeigen

Benutzerbild von JamesTKirk
JamesTKirk

Registriert seit: 9. Sep 2004
Ort: München
604 Beiträge
 
FreePascal / Lazarus
 
#23

Re: DLL-Funktionen in Lazarus/FP einbindbar / wie einzubinde

  Alt 13. Mär 2010, 15:52
Zitat von Delphi-Laie:
Alternativ jeweils den kompletten uses-Befehl in die Compilerschalter einzubinden (müßte doch eigentlich auch möglich sein?!), funktioniert in meiner DLL-Quelltextprojektdatei auch nicht - beißt sich das evtl. mit dem Delphi-Modus, den ich vorher deklarieren muß, damit es keinen Fehler gibt? Mein unter WindowsXP(64) laufendes Lazarus compilierte die im selben Verzeichnis befindliche tlhelp32.pas (diese natürlich im Delphi-Modus) erst, nachdem ich die Schalter und auch jwathelp32 aus dem uses-Befehl meiner DLL-Quelltextdatei entfernte (auskommentierte).
Würdest/könntest du mir bitte den Code zeigen, den du ausprobiert hast? Vielleicht kann ich dir helfen und für die Zukunft das Problem lösen.
Zitat von Delphi-Laie:
Es handelt sich ohnehin um ein reines Windowsprogramm, warum also solche Verrenkungen, die wohl eine gewisse Plattformunabhängigkeit erreichen sollen? Ich glaube kaum, daß andere Betriebsprogramme die gleichen Hooks verwenden, ja, ich weiß nicht einmal, ob die überhaupt welche oder ähnliche Funktionalitäten zur Verfügung stellen.
Das war jetzt auch nicht für Cross-Plattform gedacht - wobei ich Defines da äußerst gerne verwende - sondern, um die parallele Nutzung des Codes mit Delphi und FPC zu ermöglichen (wobei das ja, wie oben geschrieben, nur eine der beiden Möglichkeiten ist). Da sich Units zwischen Delphi und FPC unterscheiden können, ist es manchmal angebracht da einige solcher Verrenkungen zu betreiben, wenn man mit beiden Compilern arbeiten möchte.

Zitat von Delphi-Laie:
Nunmehr stehe ich vor der Aufgabe, das Hostprogramm 64 Bit mit Lazarus zu schreiben, denn das 32-Bit-Delphi-Compilat des Hostprogrammes verweigert, wie zu erwarten, die Zusammenarbeit mit der 64-Bit-DLL (es findet die DLL nicht einmal, obwohl im selben Verzeichnis liegend).
Dass die DLL nicht gefunden wird, ist meiner Ansicht nach sogar eine sehr gute Lösung (von Windows - ich weiß aus dem Stegreif nicht, ob Linux da ähnlich vorgeht), da man so nicht auf die dumme Idee kommen kann eine 64-Bit DLL in einem 32-Bit Prozess zu nutzen oder umgekehrt. Dies geht nämlich spätestens bei der Annahme SizeOf(Integer)=SizeOf(Pointer) in die Hose

Zitat von Delphi-Laie:
Mit einem einfach Umbenennen der dpr- in eine lpr-Datei ist es natürlich beileibe nicht getan. Entweder funktioniert das dann mit einer DLL, in die units tlhelp32- und/oder einer tlhelp32 eingebunden werden, oder eben nicht. Ich lasse mich überraschen.
Dann noch viel Erfolg beim Umstellen und ärgere dich nicht, wenn was nicht auf Anhieb funktioniert... dafür ist ja dann das Forum da

Gruß,
Sven
Sven
[Free Pascal Compiler Entwickler]
this post is printed on 100% recycled electrons
  Mit Zitat antworten Zitat