babe59
Messages postés189Date d'inscriptionvendredi 28 mai 2004StatutMembreDernière intervention27 novembre 2015
-
1 oct. 2008 à 10:04
babe59
Messages postés189Date d'inscriptionvendredi 28 mai 2004StatutMembreDernière intervention27 novembre 2015
-
1 oct. 2008 à 19:21
Bonjour,
J'utilise une DLL (générée à partir d'un code FORTRAN par Intel Fortran Compiler) dans un programme C# sous VS2005. Cela fonctionne hormis le fait que je n'arrive pas à trapper les exceptions. Dans l'exemple qui suit, j'ai généré un erreur en passant 10 en paramètre à ARRAYTEST (param qui ne peut dépasser 3 (première dimension de mon tableau). Or le programme affiche une erreur lors de l'execution à l'appel de ARRAYTEST puis il s'arrête. Il ne va pas dans mon cacth. Pourriez vous me dire pourquoi ?
Merci
[
DllImport(
"dll1.dll")]
public
static
extern
void ARRAYTEST(
[
MarshalAs(
UnmanagedType.LPArray)]
int[,] arr,
[
MarshalAs(
UnmanagedType.I4)]
int len);
...
cs_Bidou
Messages postés5487Date d'inscriptiondimanche 4 août 2002StatutMembreDernière intervention20 juin 201361 1 oct. 2008 à 12:46
Bonjour,
Je ne sais pas si c'est le problème, mais en C# un tableau est déclarer avec [] et pas [,].
[,] représente un jagged array, ce qui est quelque peu différent...
babe59
Messages postés189Date d'inscriptionvendredi 28 mai 2004StatutMembreDernière intervention27 novembre 2015 1 oct. 2008 à 12:49
Le problème n'est pas là. L'instruction fonction (tableau à deux dimensions). L'erreur générée est une erreur applicative. C'est moi qui passe un paramètre supérieur à la valeur maximale attendue => ceci dans un but de déclencher une exception lors de l'execution de ma DLL (je suis en phase de test)