externe DLL per NDK einbinden

  • Antworten:5
Hans Peter
  • Forum-Beiträge: 13

12.03.2012, 15:03:21 via Website

Guten Tag,

ich möchte für ein Projekt eine externe DLL per NDK einbinden. Da die DLL keine JNI-Variablen verwendet muss ich einen Wrapper schreiben. Leider bekomme ich die externe DLL nicht eingebunden da die NDK keinen Windows.h Header kennt. Wie funktioniert das mit externen DLL´s? Würde mich freuen wenn mir das einer erklären könnte da ich gerade echt auf dem Schlauch stehe.

Mit freundlichen Grüßen

Hans Peter

Antworten
Klaus T.
  • Forum-Beiträge: 8.183

12.03.2012, 15:58:32 via Website

Mit meinem gesunden Halbwissen würde ich sagen du bräuchtest eine Shared Library für Linux um sowas zum machen. Mit einer Windows-DLL kommste mMn nicht weit.... (und mit einer für x86 'eh nicht)

:)

— geändert am 12.03.2012, 16:01:10

if all else fails, read the instructions.

Antworten
Hans Peter
  • Forum-Beiträge: 13

13.03.2012, 06:52:57 via Website

Aber bei den bereitgestellten Samples wird auch die windows.h verwendet und es kann ohne Probleme kompiliert werden. Und soweit ich das sehe gibt es auch eine x86 Unterstützung. Es muss doch eine Möglichkeit geben externe C DLL´s in die App zu integrieren.

Antworten
Klaus T.
  • Forum-Beiträge: 8.183

13.03.2012, 09:01:13 via Website

Hans Peter
Und soweit ich das sehe gibt es auch eine x86 Unterstützung. Es muss doch eine Möglichkeit geben externe C DLL´s in die App zu integrieren.

Jooo....hast du denn einen x86-Androiden, wo du die App dann drauf laufen lassen willst? :D

Wirf auch mal einen Blick in android-ndk-r7b/docs/CPU-ARCH-ABIS.html

:)

if all else fails, read the instructions.

Antworten
Hans Peter
  • Forum-Beiträge: 13

13.03.2012, 10:57:58 via Website

Hm okay langsam dämmerts mir :). Mal angenommen ich habe den Quellcode aus der die DLL erstellt wurde vorliegen, müsste ich doch auch einfach eine shared Library daraus erzeugen können. Also wenn keine Windows spezifischen Sachen verwendet wurden, oder? Diese .so Library müsste ich doch dann aber einbinden können da Android ja einen Linux Kernel besitzt?!?

Vielen Dank schonmal für die Hilfe :)

Antworten
Klaus T.
  • Forum-Beiträge: 8.183

13.03.2012, 11:07:17 via Website

Hans Peter
Mal angenommen ich habe den Quellcode aus der die DLL erstellt wurde vorliegen....

Das würde dann sicher funktionieren.
Aber wenn du den Quellcode hast (und genau weißt worum es geht), ist es evtl. auch möglich, den nach Java zu portieren. Ist sicher die bessere Lösung.

:)

if all else fails, read the instructions.

Antworten