Kann man die FTD2XX.DLL in eine .exe einbinden?

Gast #2186013
Lesenswert?
• ▲
▼
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!
Persönliche Seite #2186069
Lesenswert?
• ▲
▼
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
#2186289
Lesenswert?
• ▲
▼
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...

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.