Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi JNA: DLL-funktion in java benutzen (https://www.delphipraxis.net/152025-jna-dll-funktion-java-benutzen.html)

michaelarban 8. Jun 2010 20:59

JNA: DLL-funktion in java benutzen
 
Hallo Leute,

ich habe in einem java-Forum folgende Frage gestellt, aber nicht zufridendenstellend beantwortet bekommen:

ich habe eine Delphi-DLL (rechnen.dll) mit folgender einfachen Funktion (addiere), die 2 Integer-Zahlen übergeben bekommt, diese addiert und das Ergebnis zurückgibt:

Code:
library rechnen;
 
 
uses
  SysUtils,
  Classes;
 
{$R *.res}
 
function addiere(zahl1, zahl2 : Integer): Integer; stdcall;
begin
  Result := zahl1 + zahl2;
end;
 
exports
  addiere;
 
begin
end

Jetzt will ich diese "addiere-Funktion" in einer Java-Klasse benutzen, und zwar mittels JNA.

Frage: wie mache ich das? könntet ihr mir bitte eine schritt-für-schritt-Anleitung schreiben?

dankeeee

Luckie 8. Jun 2010 21:17

AW: JNA: DLL-funktion in java benutzen
 
Guck mal hier: http://www.michael-puff.de/Artikel/HelloWorld.shtml

michaelarban 8. Jun 2010 21:29

AW: JNA: DLL-funktion in java benutzen
 
hi Luckie,

soweit ich es sehe wird in diesem Beispiel eine java-Funktion in einer DLL aufgerufen, ich will aber den umgekehrten Fall.

bye

TheJeed 8. Jun 2010 22:52

AW: JNA: DLL-funktion in java benutzen
 
Whoa! Das würde mich auch brennend interessieren :thumb:

mjustin 9. Jun 2010 05:53

AW: JNA: DLL-funktion in java benutzen
 
Die Seite https://jna.dev.java.net/ enthält ein Hello World Beispiel, hier der (ungetestete) Code für die Delphi rechne.dll

[FONT="Courier New"]

package com.sun.jna.examples;

import com.sun.jna.Library;
import com.sun.jna.Native;
import com.sun.jna.Platform;

/** Simple example of JNA interface mapping and usage. */
public class HelloWorld {

public interface CLibrary extends Library {
CLibrary INSTANCE = (CLibrary) Native.loadLibrary("rechnen", CLibrary.class);

int addiere(int zahl1, int zahl2);
}

public static void main(String[] args) {
CLibrary.INSTANCE.addiere(17,4);

}
}
[/FONT]


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:20 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz