Hallo Könner, hier fragt ein Nichtkönner. Ich musste den FTDI-USB<->RS232 Support in eine Software (unter Delphi 10). einbinden. Die FTDI-Nutzung ist nur eine Option, die Software soll auch ohne angehängten FTDI funktionieren. Wenn ich den Treiber und die FTD2XX.DLL installiere ist das auch alles möglich. Ist die FTD2XX.DLL nicht installiert, so meldet die Software verständlicherweise einen Fehler, wenn ich diese starte. Die Software soll allerdings auch als einzelne exe-Datei ohne diese DLL startbar sein (ohne Nutzung der USB-Funktionalität) und nur derjenige, der den FTDI braucht soll das Treiber- und DLL-Zeugs nachinstallieren müssen. Kann man daher zumindest die DLL einbinden, so dass diese nicht zwingend als separate Datei installiert werden muss oder gibt es andere schlaue Lösungen für mein unkonventionelles Problem? Hinweis: Ich bin ein äußerst schlechter Windows- und Delphiprogrammier, muss das aber machen... Danke vorab für die schlauen Profi-Tips!
dll-merger schrieb: > google ILMerge ilmerge funktioniert aber nur für managed assemblies, das dürfte eine native anwendung und eine native dll sein...
Wenn Du die Prozedureinsprungspunkte* in die DLL zur Laufzeit bestimmst, dann kannst Du das Fehlen der DLL abfangen. Die übliche Vorgehensweise ist in diesem Fall das manuelle Laden der DLL mit der Win32-API-Funktion LoadLibrary. Wenn das klappt, sind die Adressen der Dich interessierenden Funktionen in der DLL mit der Win32-API-Funktion GetProcAdress zu bestimmen. Das ist natürlich umständlicher als der "klassische" Weg über eine Importlibrary, hat aber den Vorteil, daß das Laden der DLL halt erst dann geschieht, wenn das Programm es will, und so ein sinnvolles Fehlerverhalten möglich ist. Wie das ganze nun mit Delphi abzuwickeln ist, wirst Du mit der Internetsuchmaschine Deiner Wahl und der Kombination von "Delphi" mit den Namen der beiden genannten Funktionen herausfinden können. Viel Erfolg! *) ich kann nichts dafür, aber so nennt Microsoft das auf Deutsch
Danke Rufus, das hilft mir Prog-Prolet bislang am ehesten. Da werde ich mich mal durchkämpfen. Das ist jedenfalls auch ein sinnvoller Ansatzpunkt.
DelphiDoedl schrieb: > Hallo Könner, > hier fragt ein Nichtkönner. > > Ich musste den FTDI-USB<->RS232 Support in eine Software (unter Delphi > 10). einbinden. Die FTDI-Nutzung ist nur eine Option, die Software soll > auch ohne angehängten FTDI funktionieren. > Wenn ich den Treiber und die FTD2XX.DLL installiere ist das auch alles > möglich. > Ist die FTD2XX.DLL nicht installiert, so meldet die Software > verständlicherweise einen Fehler, wenn ich diese starte. Die Software > soll allerdings auch als einzelne exe-Datei ohne diese DLL startbar sein > (ohne Nutzung der USB-Funktionalität) und nur derjenige, der den FTDI > braucht soll das Treiber- und DLL-Zeugs nachinstallieren müssen. > Kann man daher zumindest die DLL einbinden, so dass diese nicht zwingend > als separate Datei installiert werden muss oder gibt es andere schlaue > Lösungen für mein unkonventionelles Problem? Darf die FTD2XX.DLL nicht ins Verzeichnis der Anwendung kopiert werden (während der Installation) oder warum so umständlich? Der Treiber kann dann immer noch nachinstalliert werden...
sorry für die späte Rückmeldung. Ja, danke "Arc Net", das ist eigentlich die einfachste Variante. Da sollte keiner schimpfen müssen, wenn er die DLL mit ins Verzeichnis kopiert wird.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.