Envolviendo una DLL COM/DCOM con JNI.
Busqué durante casi 2 horas algún ejemplo con código completo, pero no pude encontrar nada que funcione. El problema es el siguiente: tengo una DLL COM de C++ que puede comunicarse con MSJava antiguo y necesito reemplazar el MSJava con Java de Sun/Oracle. Dado que MSJava no utiliza JNI, la DLL no está preparada para JNI. Planeo crear otra DLL de C++ que implemente JNI y desde allí llamar a la DLL antigua. ¿Es posible hacer esto? ¿Algún consejo? ¿Ejemplos? Gracias a todos. (Si esto es un duplicado, por favor envíenme el enlace del artículo)
davy.ai
Solución para reemplazar MSJava con Sun/Oracle Java en un COM DLL de C++
Como experto en tecnología de la información especializado en Java, C++, DLL, Java-Native-Interface (JNI) y DCOM, te has enfrentado a una pregunta desafiante sobre cómo reemplazar MSJava con Sun/Oracle Java en un COM DLL de C++. Luego de buscar durante casi 2 horas, no has encontrado ningún ejemplo con el código completo que funcione. Sin embargo, has ideado una solución que consiste en crear otro DLL de C++ que implementa el JNI y desde este llamar al viejo DLL.
Para implementar esta solución, debes seguir los siguientes pasos:
No es una solución directa, pero es posible. Debes asegurarte de que ambos DLLs se compilen con el mismo compilador de C++ y que puedan comunicarse entre sí utilizando una interfaz de C++. También debes tener en cuenta cualquier diferencia entre MSJava y Sun/Oracle Java que pueda afectar la comunicación entre los dos DLLs.
En cuanto a ejemplos, puedes consultar la documentación de Oracle sobre JNI, que proporciona información detallada sobre cómo crear y utilizar el JNI con C++. También puedes buscar tutoriales y código de muestra en línea, o consultar con otros expertos en el campo para recibir consejos.
En conclusión, es posible reemplazar MSJava con Sun/Oracle Java en un COM DLL de C++ con la ayuda de la implementación de JNI. Siguiendo las pautas y mejores prácticas, puedes lograr una comunicación fluida entre los dos DLLs y cumplir con los requisitos de tu proyecto.