Použití knihoven na Mac OS X

vložil Radek Červinka 22. května 2012 00:18

Už dříve jsem napsal článek o DLL a volacích konvencích a dnes to doplním o použití pro OS X. Většinu věcí použijete z minula, jen je tu takový drobný zádrhel.

Mějme v nějaké knihovně funkci např. InicializeSDK. Její deklaraci pro Windows určitě zvládnete, proto zároveň uvedu variantu pro OS X.

Základním kamenem úrazu je, že jména v knihovně začínají podtržítkem a druhým problémem je jiná volací konvence (viz uvedený článek) a třetím problémem je, že musíte najít knihovnu. V tom druhém Vám pomůže samotný OS X, resp. pokud program spustíte pod PA serverem (součást instalace Delphi - už jsem o tom zde psal: Deploy to OSX a pokračování) je v případě problému s knihovnou vypsána cesta kde je knihovna hledána.

Takže abych SDK udělal jednoduše multiplatformní napsal jsem něco takového (inspirace v RTL a troška zkoušení):

const
{$IFNDEF MACOS}
  xsdk = 'XSDK.DLL';
  _PU = '';
{$ELSE}
  _PU = '_';
  xsdk = '/Applications/Contents/XSDK';
{$ENDIF}


function InitializeSDK( ) : Integer ; {$IFDEF MACOS}cdecl;{$ELSE}stdcall;{$ENDIF}
  external xsdk name _PU + 'InitializeSDK';

Tedy v jednom kódu jsem podchytil změnu s podtržítkem (PU), volací konvenci a informaci o knihovně. Berte to jako takový výkop, určitě to napíšete pěkněji. Jen pro úplnost: toto budete potřebovat jen ve speciálních případech. Většina volání knihoven je součástí RTL v MacAPI.*, např. MacApi.CoreFoundation.

Tagy: ,

Návody

Komentování ukončeno

Naše nabídka

MVP
Ing. Radek Červinka - Embarcadero MVP
profil na linkedin, Twitter:@delphicz

Nabízím placené poradenství a konzultace v oblasti programování a vývoje SW.
Dále nabízíme i vývoj speciálního software na zakázku.

Neváhejte nás kontaktovat (i ohledně reklamy).

love Delphi

O Delphi.cz

Delphi je moderní RAD nástroj podporující tvorbu nativních aplikací pro platformu Win32, Win64, Mac OSX, Linux a na iPhone a Android.

Delphi.cz je nezávislý portál pro uživatele Delphi. Portál není koncipován pro úplné začátečníky, i když i ti se zde nebudou nudit, ale spíše na programátory, kteří již něco znají a chtějí své znalosti dále rozvíjet a sledovat novinky.

Poslední komentáře

Comment RSS

Dle měsíců