framework bibliothek dynamisch einbinden

Antworten
jus
Beiträge: 47
Registriert: Fr 6. Mai 2011, 13:29

framework bibliothek dynamisch einbinden

Beitrag von jus »

Hallo,

ich habe bin erst seit kurzen mit Lazarus angefangen. Ich hätte eine grundlegende Frage, wie kann man unter Mac eine fremde Bibliothek, in meinem Fall ein Framework, einbinden? Funktioniert es genauso mit Loadlibrary wie bei .dynlib? Gibt es dazu ein Beispiel woran man sich orientieren kann.

Lg,
jus

carli
Beiträge: 660
Registriert: Sa 9. Jan 2010, 17:32
OS, Lazarus, FPC: Linux 2.6.x, SVN-Lazarus, FPC 2.4.0-2
CPU-Target: 64Bit

Re: framework bibliothek dynamisch einbinden

Beitrag von carli »

Ja,

es gibt genauer gesagt 2 Varianten.

1. unit "dynlibs" einbinden und man kann mit LoadLibrary wie du's kennst

2. external-Deklarationen a la

Code: Alles auswählen

procedure framework_prozedur(param: pointer); cdecl; external 'meinelib.dynlib';


Wobei bei 2. macht es Sinn, die Dateiendung ".dynlib" wegzulassen, falls es dieselbe Library auch auf anderen Betriebssystemen gibt. In dem Fall funktioniert der Header dann auch dort.

jus
Beiträge: 47
Registriert: Fr 6. Mai 2011, 13:29

Re: framework bibliothek dynamisch einbinden

Beitrag von jus »

Hallo carli,

vielen Dank für die schnelle Antwort. Mein Problem ist nur, dass dort wo die Bibliothek/Framework sein soll, keine Datei mit der Endung *.dynlib existiert. Die Datei hat nämlich gar keine Endung. Und außerdem liegt die nicht wie normal unter /library/framework/.. sonder unter /library/printers/...
Darum bin ich einbiszchen irritiert wo ich da ansetzen sollte. Wenn es eine Datei mit *.dynlib gewesen wäre, hätte ich ja intuitiv mit loadlibrary versucht, aber in diesem Fall... :(
Gibt es für den Fall keine Doku oder Beispiel?

Lg,
jus

carli
Beiträge: 660
Registriert: Sa 9. Jan 2010, 17:32
OS, Lazarus, FPC: Linux 2.6.x, SVN-Lazarus, FPC 2.4.0-2
CPU-Target: 64Bit

Re: framework bibliothek dynamisch einbinden

Beitrag von carli »

Wenn die Datei keine Dateiendung hat, musst du erst mal herausfinden, in welchem Format sie vorliegt.
Ist es einfach nur eine dynlib ohne Endung?
Oder doch ein Jar-Paket?

jus
Beiträge: 47
Registriert: Fr 6. Mai 2011, 13:29

Re: framework bibliothek dynamisch einbinden

Beitrag von jus »

Hallo carli,

wie kann man das feststellen? Ich bin auch in Mac ein Neuling. :oops:

Lg
jus

carli
Beiträge: 660
Registriert: Sa 9. Jan 2010, 17:32
OS, Lazarus, FPC: Linux 2.6.x, SVN-Lazarus, FPC 2.4.0-2
CPU-Target: 64Bit

Re: framework bibliothek dynamisch einbinden

Beitrag von carli »

Zeig uns doch mal die Dokumentation dazu

jus
Beiträge: 47
Registriert: Fr 6. Mai 2011, 13:29

Re: framework bibliothek dynamisch einbinden

Beitrag von jus »

carli hat geschrieben:Zeig uns doch mal die Dokumentation dazu

Hallo Carli,

Doku darf ich leider aus rechtlichen Gründen nicht herzeigen. Außerdem wenn man das übehaupt als Doku nennen kann, extrem mager. :(
Ich habe es zwar auch noch nicht ganz hingekriegt, ich denke, dass ich aber auf den richtig Weg bin. Ich möchte kurz berichten was ich bisher rausgefunden habe, um anderen Anfängern wie mir den Weg einbiszchen abzukürzen:
Grundsätzlich um ein Mac OSX Framework in Lazarus Compiler einzubinden, das entweder in "/Library/Frameworks" oder in "/System/Library/Frameworks" ist, gibt 2-3 Möglichkeiten (Dank an phil vom engl.Lazarusforum):
-über Compilerschalter im direkt im Lazaruscode {$linkframework EigenesFramework}
-über Compiler-Parameter z.B."-k-framework -kEigenesFramework"
-über Linker-Parameter

Ich stand vor dem Problem, dass ich nicht wußte, wie man die einzelnen Funktionen mit Framework ansprechen konnte, habe ich mal framework sein lassen. Also habe ich wie Carli es quasi vorgeschlagen hat, brutal diesmal mit Pfadangabe (z.B. /Library/Printers/test.framework/Versions/A/test) Loadlibrary die Datei geladen und es schien fürs erste zu funktionieren. :)

Weitere Infos und Quellen zu Frameworks:
-"Introduction to Framework Programming Guide"
-http://forum.lazarus.freepascal.org/index.php/topic,13097.0.html

Antworten