Oi pessoal me desculpem a falta de frequencia no Site :oops: e que to atolado ate o pescoço de serviço :shock:.
Bom tanjajr em JNI modestia parte estou fera
pq estou implementando varias classes para o JAVA usando interface JNI principalmente para acesso ao hardware, bom como sou programador C/C++ e to na fila do JAVA conheci o melhor dos dois mundos(to ate devendo um tutorial mais o tempo … ta mal). pede para seu amigo programador C++ procurar por JNI no google no site da SUN tem um otimo tutorial tb, no site da GNU documentention existe um para o GCC que pode ser impregado com o Mingw, mais se ele estiver com pressa, pede para ele me mandar um email que eu mando um exemplo mais mesmo assim vou te mostrar um rapido how-tu :).
Digamos que java não tivesse uma função para escrever no terminal, e vc quisesse uma função que imprimisse a soma de dois valores no terminal.
sua classe java ficaria assim:
public class Teste {
public native void printsoma(int a,int b);
static {
System.loadLibrary("teste");
}
public static void main(String[] args) {
new Teste().printsoma(50,50);
}
}
O arquivo .h do seu cologa ficaria assim, esse arquivo foi gerado pelo utilitario javah.
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class Teste */
#ifndef _Included_Teste
#define _Included_Teste
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: Teste
* Method: printsoma
* Signature: (II)V
*/
JNIEXPORT void JNICALL Java_Teste_printsoma
(JNIEnv *env, jobject obj, jint a, jint b);
#ifdef __cplusplus
}
#endif
#endif
O arquivo .cpp dele ficaria desse modo:
#include <jni.h>
#include "Teste.h"
#include <stdio.h>
JNIEXPORT void JNICALL
Java_Teste_printsoma(JNIEnv *env, jobject obj, jint a, jint b)
{
int c;
c=a+b;
printf("Soma Total:%i",c);
}
para ele compilar ele faria o seguinte, aqui estou supondo que seu amigo use o Microsoft Visual C/C++ 5.0 ou superior:
cl -Ic:j2sdk1.4.0_03include -Ic:j2sdk1.4.0_03includewin32 -LD teste.c -Fe%teste
PS: os diretorio tem de ser mudados de acordo com o diretorio do seu colega e o nome dos arquivo .c tem teste e ficar no mesmo diretorio da sua aplicação java ou no diretorio system.
bom galera isso e parte do tutorial que estou fazendo.
t+