Quazar
Messages postés84Date d'inscriptionmardi 19 octobre 2004StatutMembreDernière intervention 6 octobre 2006
-
14 juin 2005 à 16:42
Quazar
Messages postés84Date d'inscriptionmardi 19 octobre 2004StatutMembreDernière intervention 6 octobre 2006
-
15 juin 2005 à 09:53
Bonjour ;)
Description du probleme:
Je suis sous window et j'utilise cygwin. Ce qui signifie que j'ai acces a un environnement linux pour developper.
Depuis mon code Java je veux charger une dll. J'utilise le JNI. A
l'aide de la commande 'java -h', je crée un header (.h) pour ecrire mes
fonctions natives sous C, sous Linux. Le probleme c'est que ce header
est un .h destiné a l'environnement windows et donc je ne peux pas
l'utiliser tel quel sous mon environnement cygwin (sous Linux)
Demande :
Est ce que quelqu'un aurait une solution, ou pourrait me faire parvenir les headers du jni pour linux ?
cs_Dobel
Messages postés333Date d'inscriptiondimanche 25 mai 2003StatutMembreDernière intervention23 novembre 20091 15 juin 2005 à 09:12
Ok, en effet, ces headers là sont différents.
Je te donnes donc les .h dans le répertoire $JDK_HOME/include/linux/
c'est pris sur une version 1.4.2.01
voilà :)
<hr size= "2" width="100%"> jawt_md.h
<hr size ="2" width= "100%">/*
* @(#)jawt_md.h 1.10 03/01/23
*
* Copyright 2003 Sun Microsystems, Inc. All rights reserved.
* SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*/
#ifndef _JAVASOFT_JAWT_MD_H_
#define _JAVASOFT_JAWT_MD_H_
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include <X11/Intrinsic.h>
#include "jawt.h"
#ifdef __cplusplus
extern "C" {
#endif
/*
* X11-specific declarations for AWT native interface.
* See notes in jawt.h for an example of use.
*/
typedef struct jawt_X11DrawingSurfaceInfo {
Drawable drawable;
Display* display;
VisualID visualID;
Colormap colormapID;
int depth;
/*
* Since 1.4
* Returns a pixel value from a set of RGB values.
* This is useful for paletted color (256 color) modes.
*/
int (JNICALL *GetAWTColor)(JAWT_DrawingSurface* ds,
int r, int g, int b);
} JAWT_X11DrawingSurfaceInfo;
#ifdef __cplusplus
}
#endif
#endif /* !_JAVASOFT_JAWT_MD_H_ */
<hr size="2" width="100%">
<hr size="2" width="100%"> jni_md.h
<hr size ="2" width="100%">/*
* @(#)jni_md.h 1.17 03/01/23
*
* Copyright 2003 Sun Microsystems, Inc. All rights reserved.
* SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*/
#ifndef _JAVASOFT_JNI_MD_H_
#define _JAVASOFT_JNI_MD_H_
#define JNIEXPORT
#define JNIIMPORT
#define JNICALL
typedef int jint;
#ifdef _LP64 /* 64-bit Solaris */
typedef long jlong;
#else
typedef long long jlong;
#endif
typedef signed char jbyte;
#endif /* !_JAVASOFT_JNI_MD_H_ */
<hr size="2" width="100%">
Dobel
[Une fois rien, c'est rien; deux fois
rien, ce n'est pas beaucoup, mais pour trois fois rien, on peut déjà
s'acheter quelque chose, et pour pas cher]
cs_Dobel
Messages postés333Date d'inscriptiondimanche 25 mai 2003StatutMembreDernière intervention23 novembre 20091 14 juin 2005 à 22:02
Je crois que les headers créés par javah sont indépendants de la plateforme.
si tu veux, je peux te faire parvenir les headers du jdk linux, ou te gérérer ceux pour ton programme sous linux.
si tu as besoin de m'envoyer des fichiers (ou inverse), contacte moi
par MP, pour que je te passe une adresse email (ou inverse :-) )
A+
Dobel
[Une fois rien, c'est rien; deux fois
rien, ce n'est pas beaucoup, mais pour trois fois rien, on peut déjà
s'acheter quelque chose, et pour pas cher]
Quazar
Messages postés84Date d'inscriptionmardi 19 octobre 2004StatutMembreDernière intervention 6 octobre 2006 15 juin 2005 à 08:29
En fait non, les headers ne sont pas exactement indépendant de la
plateforme. A voir la maniere dont ces header sont rangé dans
l'arborescence de /Java (c'est a dire dans un rep Win32).
Ca serait sympa de ta part que tu me fasses parvenir les headers sous linux afin que je m en rende mieux compte ;)