[JNA] Récupération d'une structure C++ en Java
Bonjour,
Je tente de récupérer une structure renseignée par ma fonction en C++, mais je n'arrive pas à faire le Mapping du côté Java pour pouvoir l'utiliser à travers ma DLL.
Mon programme en C++ s'exécute bien, j'arrive à récupérer les données de ma structure pour les traiter.
Entete de ma fonction en C++ et la structure que je dois récupérer :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
struct donneesGrilleP recupDonneesMNT (const char* fichierDEM, int *tab)
struct donneesGrilleP {
int longueurCase;
int largeurCase;
int posXAntenne;
int posYAntenne;
double frequence;
double hauteurAntenne;
double **tabObstacles;
}; |
Mapping fait du côté Java :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
/* Interface permettant d'appeler les fonctions de la dll */
public interface methodesC extends Library {
/* Chargement de la DLL */
methodesC INSTANCE = (methodesC) Native.loadLibrary("ParseurDEM", methodesC.class);
/* Prototypages des fonctions contenues dans la DLL */
structDonneesMNT recupDonneesMNT(String fichier, Pointer[] tabGrille);
} |
Code:
1 2 3 4 5 6 7 8 9 10 11
|
public class structDonneesMNT extends Structure {
public int longueurCase;
public int largeurCase;
public int posXAntenne;
public int posYAntenne;
public double frequence;
public double hauteurAntenne;
public PointerByReference tabObstacles;
} |
A l'exécution de mon programme Java voici l'erreur retournée :
Code:
1 2 3 4 5 6 7 8 9 10 11
|
# A fatal error has been detected by the Java Runtime Environment:
#
# EXCEPTION_UNCAUGHT_CXX_EXCEPTION (0xe06d7363) at pc=0x7569b9bc, pid=1704, tid=5720
#
# JRE version: 7.0_02-b13
# Java VM: Java HotSpot(TM) Client VM (22.0-b10 mixed mode, sharing windows-x86 )
# Problematic frame:
# C [KERNELBASE.dll+0xb9bc]
#
# Failed to write core dump. Minidumps are not enabled by default on client versions of Windows |
Je ne comprend pas comment interpréter cette erreur. Est-ce possible que le problème vienne de la mauvaise déclaration dans ma structure en Java pour le tableau de double multidimensionnel (public PointerByReference tabObstacles) ?
Ma version de Java est la 7.1 (JR7)
Merci