elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Mezcla de lenguajes
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Mezcla de lenguajes  (Leído 5,936 veces)
Codename!!


Desconectado Desconectado

Mensajes: 883



Ver Perfil
Mezcla de lenguajes
« en: 16 Marzo 2008, 22:29 pm »

Hola!!

He estado googleando y no he podido conseguir nada en claro, se que hay gente que lo hace pero no se como ni tmpoco lo explica, estoy hablando de mezclar lenguajes de programacion, por ejemplo java y vb, o java y delphi,  cosas asi ya que cada lenguaje tiende mas hacia una especialidad...

Pediria a alguien que supiera de eso, que pusiera un simple ejemplo de como se combinarian vb ( o delphi ) con java, nose, por ejemplo que desde un boton hecho en vb llamase a un procedimiento hecho en java o algo asi.


Mil Gracias!


En línea

No te dejes mover por las masas, se tu mismo.




Sin Nick xD


Desconectado Desconectado

Mensajes: 443


Ö


Ver Perfil
Re: Mezcla de lenguajes
« Respuesta #1 en: 16 Marzo 2008, 22:36 pm »

1º Haces una dll con el procedimiento que quieras llamar en vb
2ºdeclaras la funcion en vb
3º cumples los parametros de la dll

listo

No me prguntes sobre como acer una dll ^Ç^ yo estoy intendolo desde hace tiempo y no he tenido total exito

salu2


En línea

Yo solo creería en un Dios que supiese bailar.
Codename!!


Desconectado Desconectado

Mensajes: 883



Ver Perfil
Re: Mezcla de lenguajes
« Respuesta #2 en: 16 Marzo 2008, 22:48 pm »

hasta que no vea un ejemplo no se me ecnendera la bombilla xdd
En línea

No te dejes mover por las masas, se tu mismo.




Sin Nick xD


Desconectado Desconectado

Mensajes: 443


Ö


Ver Perfil
Re: Mezcla de lenguajes
« Respuesta #3 en: 16 Marzo 2008, 23:04 pm »

Lo primero que salio en google

http://www.elguille.info/vb/avanzado/crear_dll_windows_con_vb6_explicado.htm

No te ofendas es solo que asy fue

salu2
En línea

Yo solo creería en un Dios que supiese bailar.
-Ramc-


Desconectado Desconectado

Mensajes: 495



Ver Perfil
Re: Mezcla de lenguajes
« Respuesta #4 en: 16 Marzo 2008, 23:20 pm »

Que yo sepa, lo que puedes hacer codificar un metodo nativo que llame a C y de C puedes llamar a ensamblador y ahí estarias usando esos 2 lenguajes, Java no usa dll's pero usa código nativo, entonces desde C puedes llamar a una dll.

Por ejemplo:

public class HolaNativo{
public native void Hola();
static {
System.loadLibrary("LibHola");
}
public static void main( String[] args ) {
new HolaNativo().Hola();
}
}

Esa seria la parte de Java, pero debes crear los stubs y la libreria compartida fuera de la clase de C.
En línea


Shhh... be vewy, vewy, quiet!  I'm hunting wabbits...
LA PANDILLA MAS GRANDE DE MI CIUDAD, SE LLAMA POLICIA NACIONAL.
Ragnarok
Colaborador
***
Desconectado Desconectado

Mensajes: 4.590


Shrödingerificado


Ver Perfil
Re: Mezcla de lenguajes
« Respuesta #5 en: 17 Marzo 2008, 01:17 am »

Pues hay muchas formas distintas, en C y C++ es habitual que otros lenguajes de programación generen código objeto y luego se enlace todo junto.

En java puede pasar que otros lenguajes generen bytecode, ya sea como .class o más habitualmente en un .jar y que se enlace igualmente.

Y también está la plataforma .NET, las dlls de windows que ya han mencionado y otras muchas soluciones.
En línea

No olvidéis leer las normas generales, además de las específicas de cada tablón.sgae, ladrones
JWizard

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Re: Mezcla de lenguajes
« Respuesta #6 en: 19 Marzo 2008, 00:36 am »

Hola! como bien te dicen puedes hacer uso de la JNI, yo apenas ayer la use, necesitaba usar el nombre corto ( formato 8.3 ) de los archivos en windows, pues desde mi programa java ejecutaba otro que recibe parametros desde la consola.

aqui te dejo un ejemplo, espero te sirva.

////////////////////// ARCHIVO Main.h ///////////////////////////////

Código:
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class Main */

#ifndef _Included_Main
#define _Included_Main
#ifdef __cplusplus
extern "C" {
#endif
/*
 * Class:     Main
 * Method:    getShortPathName
 * Signature: (Ljava/lang/String;)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_Main_getShortPathName
  (JNIEnv *, jobject, jstring);

#ifdef __cplusplus
}
#endif
#endif


//////////////////////// ARCHIVO Main.c /////////////////////////////////
Código:
#include <jni.h>
#include <stdio.h>
#include <windows.h>
#include "Main.h"

JNIEXPORT jstring JNICALL Java_Main_getShortPathName
  (JNIEnv *env, jobject o, jstring thePath) {
         
 long lResult = 0;
 WCHAR buff[255];
 const jchar *utfPath = (*env)->GetStringChars(env,thePath,NULL);
 
 lResult = GetShortPathNameW(utfPath,buff,255);
 
 (*env)->ReleaseStringChars(env,thePath,utfPath);         
  return (*env)->NewString(env,buff,lResult);
}

//////////////////////// Main.java ////////////////////////////////

Código:
public class Main {
   
    private native String getShortPathName(String thePath);
   
    public static void main(String[] args) {
        Main app = new Main();
        System.out.println(app.getShortPathName("C:\\Documents and Settings");
    }
   
    static {
        System.loadLibrary("api");
    }

}

para compilar la dll use mingw asi:
Código:
gcc -c -I"aqui el path de tu java\include" -I"aqui el path de tu java\include\win32" -o api.o Main.c

y despues....
Código:
gcc -shared -o api.dll api.o api.def

el archivo def tiene la funcion que vas a exportar asi:
Código:
EXPORTS
Java_Main_getShortPathName
En línea

Codename!!


Desconectado Desconectado

Mensajes: 883



Ver Perfil
Re: Mezcla de lenguajes
« Respuesta #7 en: 20 Marzo 2008, 22:58 pm »

asias jwiz!
En línea

No te dejes mover por las masas, se tu mismo.




Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda en lenguajes .Net
.NET (C#, VB.NET, ASP)
Rober1995 6 3,022 Último mensaje 6 Julio 2012, 23:21 pm
por cristiantorres
Ayuda lista de mezcla de nuemros
Programación C/C++
Brenda Alexia 3 1,900 Último mensaje 30 Noviembre 2014, 02:37 am
por rir3760
Mezcla y master
Foro Libre
Porrestrunger 1 1,578 Último mensaje 9 Enero 2016, 16:17 pm
por El_Andaluz
MOVIDO: Mezcla y master
Multimedia
Eleкtro 0 1,831 Último mensaje 9 Enero 2016, 15:57 pm
por Eleкtro
NSFWare es un videojuego gratuito que mezcla Nintendo y Pornhub
Noticias
wolfbcn 0 1,049 Último mensaje 26 Enero 2018, 21:48 pm
por wolfbcn
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines