🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: es.comp.lenguajes.java
Article #27520

Re: Insertar c�digo C/C++

#27520
From: Christian Sifaqui
Date: Tue, 08 Sep 1998 00:00
65 lines
2427 bytes
>   �Alguien me puede explicar o decirme donde puedo encontrar
> informaci�n detallada sobre c�mo insertar c�digo de C/C++ en un
> programa Java?

A ver, a ver, para eso debes usar lo que se llama JNI, te describo
un ejemplo bastante sencillo: Se program� una funci�n en C++ para
calcular el factorial de un n�mero (x!) (el programa lo tengo escrito
en alem�n, as� que la funci�n se llama Fakult�t=Factorial).

Bueno, el programa "pot.cpp" que calcula el factorial
en C++ es as�:
--------------------------------------------------
#include <stdio.h>
#include <jni.h>
#include "Fakultaet.h"
JNIEXPORT jint JNICALL Java_Fakultaet_pot(JNIEnv *env,
                                         jobject obj, jint i){
        jint p = 1;
        for(int k=1;k<=i;k++) p = p * k;
        return p;
}
--------------------------------------------------

El programa "Fakultaet.java" en Java que usa la funci�n es:
--------------------------------------------------
public class Fakultaet {
    private native int pot(int i);
 
 public static void main(String args[])  {
   Fakultaet p = new Fakultaet();
   int i = p.pot(5);
   System.out.println(i);
 }
 
 static {
    System.loadLibrary("Fakultaet");
 }
}
--------------------------------------------------

y se compila el programa en C++ con (hecho para solaris):
g++ -G -I/jdk_path/include -I/jdk_path/include/solaris pot.cpp -o
libFakultaet.so

luego debes asignar la variable LD_LIBRARY_PATH para que indique
al archivo "libxx.so"

y luego ejecutar "java Fakultaet"

Saludos

>  "Dios mio, hemos caido en manos de ingenieros"
Respuesta: "�Qu� bueno, por fin dejaremos de teorizar!"
-- 
Christian Sifaqui

ZGDV e.V.
Rundeturmstrasse 6
64283 Darmstadt
Germany

mailto:sifaqui@igd.fhg.de
Phone: 49 6151 155609
Fax:   49 6151 155450
http://www.zgdv.de/~sifaqui
Technical Details
Message-ID: <35F4F7EB.A2872880@igd.fhg.de>
Path: arc1-ca.pugleaf.net!unknown!not-for-mail
References: <Pine.LNX.3.95.980902105855.24193A-100000@aumasrv1.fmatem.uv.es>

Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII
X-Google-Thread: 1116f3,549070a97194c36c
X-Google-Attributes: gid1116f3,public
From: Christian Sifaqui <sifaqui@igd.fhg.de>
Subject: Re: Insertar c�digo C/C++
Date: 1998/09/08
Message-ID: <35F4F7EB.A2872880@igd.fhg.de>
X-Deja-AN: 388975886
Content-Transfer-Encoding: 8bit
References: <Pine.LNX.3.95.980902105855.24193A-100000@aumasrv1.fmatem.uv.es>
Content-Type: text/plain; charset=iso-8859-1
Organization: http://www.zgdv.de
Mime-Version: 1.0
Newsgroups: es.comp.lenguajes.java