AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Delphi-PRAXiS - Lounge Betriebssysteme Einbinden von .so Android Library in Delphi
Thema durchsuchen
Ansicht
Themen-Optionen

Einbinden von .so Android Library in Delphi

Ein Thema von Mark7 · begonnen am 25. Aug 2022 · letzter Beitrag vom 30. Aug 2022
 
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.546 Beiträge
 
Delphi 12 Athens
 
#7

AW: Einbinden von .so Android Library in Delphi

  Alt 30. Aug 2022, 18:36
Du musst auf verschiedene Dinge achten:

1. Deine App und Deine .libXXX.so Datei müssen beide als 32 oder 64 Bit app/lib compiliert werden.

2. In Deiner libXXX.so muss die gewünschte Funktion "exportiert" werden. Beispiel:

Delphi-Quellcode:
library CrossPlatt;

uses
  System.SysUtils,
  System.Classes;

{$R *.res}

  Function Calc (A, B: Integer): Integer;
  begin
    Result := A * B;
  end;

  exports
    Calc;

begin
end.
3. Deine App importiert diese Funktion so:

Function Calc (A, B: Integer): Integer; external 'libCrossPlatt.so'; Dabei ist wirklich sorgsam darauf zu achten, dass auch alle Parameter exakt angegeben werden, wie in der .libbXXX.so
Datei. Groß und Kleinschreibung ist relevant!

4. Und - ich hatte es dunkel tatsächlich richtig in Erinnerung - Du musst unter Tools, Bibliothekspfad, das Verzeichnis angeben, wo die .libXXX.so Datei erzeugt wurde (siehe Anlage).

Dann klappt es mit der Kompilation, habe es gerade selber noch mal getestet.

Zum Schluss noch ein Hinweis - damit Du Dir nicht umsonst arbeit machst, falls Du das noch nicht wusstest: Du kannst in den .libXXX.so keine Formulare oder sowas unterbringen, das geht nur unter Windows. Du musst Dich also auf reine Funktionen beschränken, die irgendwas berechnen oder Daten verarbeiten und Dir dann das Ergebnis zurückgeben (jedenfalls war dies das Ergebnis meiner Tests und Recherchen von vor einiger Zeit, wer es anders weiß, ich lasse mich auch gerne belehren).

Ich persönlich binde meine (Linux) .libXXX.so oder MAC (.dylibs) alle immer zur Laufzeit ein. Das hat den Vorteil, dass man auch einfach mal die "DLL" austauschen kann, ohne das Programm neu kompilieren zu müssen, bzw. man kann flexibel zur Laufzeit evtl. alternative DLL's laden.
Angehängte Grafiken
Dateityp: jpg Libs.jpg (102,2 KB, 10x aufgerufen)

Geändert von Harry Stahl (30. Aug 2022 um 18:49 Uhr)
  Mit Zitat antworten Zitat
 

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:02 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz