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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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