Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
habe
Anmeldungsdatum: 23.02.2010 Beiträge: 17
|
Verfasst am: 13.08.2011, 21:55 Titel: Fremde DLL in FreeBasic einbinden |
|
|
Hallo,
wie kann ich eine DLL die mit einem anderen Compiler erstellt wurde, in FreBasic einbinden.
Bekomme immer folgende Fehlermeldung:
C:\Programme\FreeBASIC\bin\win32\ld.exe: cannot find -lUserForm.dll |
|
Nach oben |
|
 |
MOD Fleißiger Referenzredakteur

Anmeldungsdatum: 10.09.2007 Beiträge: 1003
|
Verfasst am: 13.08.2011, 23:15 Titel: |
|
|
Wenn diese DLL C-kompatibel ist, brauchst du Header dafür, heißt, du musst die Funktionen, die du willst, auch deklarieren. Erst dadurch werden sie bekannt.
Weiterhin muss der Linker wissen, wo er zu suchen hat. Dazu musst du eine .dll.a erstellen. Das kannst du, falls nicht sowieso schon vorhanden, mit pexports machen. Diese Datei muss nun beim Compilieren im Ordner des Codes liegen oder im FreeBASIC-"lib/win32"-Ordner. |
|
Nach oben |
|
 |
Westbeam

Anmeldungsdatum: 22.12.2009 Beiträge: 760
|
Verfasst am: 14.08.2011, 11:21 Titel: |
|
|
Warum werden Windowsprobleme eigentlich nicht im Windowsforenteil gepostet? Ich bin immer irritiert und fürchterlich verwirrt, wenn von "DLL" und "WinAPI" geredet wird.  |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
Verfasst am: 14.08.2011, 11:59 Titel: |
|
|
Hallo,
wie MOD schon schreibt, braucht man dafür eigentlich Header-Dateien. Wenn diese aber nicht vorliegen oder nicht funktionieren (nicht zur Version der DLL kompatibel o.ä.), kann man die Funktionen aus der DLL auch zur Laufzeit laden. Das ist u.a. für das Einbinden von Plugins in eine Anwendung sehr nützlich und funktioniert mit DYLIBLOAD und DYLIBSYMBOL.
Im Befehlsreferenzeintrag zu DYLIBLOAD gibt es ein kleines Beispiel. Aber z.B. auch in diesem Code-Beispiel hier macht sich volta das Vorgehen zunutze, um eine hid.dll zu laden.
Viele Grüße!
Sebastian _________________
Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen! |
|
Nach oben |
|
 |
habe
Anmeldungsdatum: 23.02.2010 Beiträge: 17
|
Verfasst am: 14.08.2011, 12:07 Titel: |
|
|
Hallo,
sorry das ich im falschen Forenteil gepostet habe.
Hab das Problem mit pexports und dem dlltool hinbekommen.
Danke
Habe |
|
Nach oben |
|
 |
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
Verfasst am: 14.08.2011, 16:42 Titel: |
|
|
Die GCC Toolchain kann normalerweise unter Windows auch direkt gegen DLLs linken - gesonderte Bibliotheksdateien (.a/.dll.a) braucht man daher meistens nicht. |
|
Nach oben |
|
 |
MOD Fleißiger Referenzredakteur

Anmeldungsdatum: 10.09.2007 Beiträge: 1003
|
Verfasst am: 14.08.2011, 17:03 Titel: |
|
|
Das stimmt, es ist oft nicht nötig, allerdings eben nicht bei jeder DLL. Warum es manche brauchen und manche nicht, kann ich jetzt nicht sagen, wichtig ist aber, dass das Problem erstmal gelöst ist.  |
|
Nach oben |
|
 |
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
Verfasst am: 14.08.2011, 17:30 Titel: |
|
|
Dürfte davon abhängen, ob die DLL stripped wurde. |
|
Nach oben |
|
 |
|