C++ managé

Signaler
Messages postés
36
Date d'inscription
lundi 13 juin 2005
Statut
Membre
Dernière intervention
14 septembre 2005
-
Messages postés
36
Date d'inscription
lundi 13 juin 2005
Statut
Membre
Dernière intervention
14 septembre 2005
-
Bonjour à tous !



Comme je ne sais pas où poster cette question, je la mets ici.

Mon problème se passe lors de l'éxecution de mon projet, qui utilise en
particulier une dll C++ appelée à partir de code c++ managé.

Donc, lorsque je lance mon appli, tout se passe bien, une, deux, trois
fois, aléatoirement, et, au bout d'un moment, une exception est lancée
par mon service web : une NullReferenceException.

La trace de la pile indique qu'"une référence d'objet n'est pas définie
à une instance d'objet at ClasseNonManagee.test(ClasseNonManagee *,
double *, Int32) at ClasseManagee.test(Double[] array, int32 nbPoints)"
et je passe la suite qui n'est surement pas importante.

Mon problème est simple : je n'arrive pas à trouver d'où vient
exactement ce problème parce que je n'ai tout simplement PAS de méthode
ClasseNonManagee.test(ClasseNonManagee *, double *, Int32)
!!!!!!!!!!!!!!!!!!!

Merci d'avance à ceux qui m'aideront... J'ai vraiment besoin d'aide,
parce que c'est un des derniers bugs (pour ne pas dire le dernier), et
mon stage se termine bientôt !

6 réponses

Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Membre
Dernière intervention
14 février 2014
38
pour le C++ (managé ou pas) le mieux c'est d'aller voir sur http://www.cppfrance.com

Sébastien FERRAND
Messages postés
36
Date d'inscription
lundi 13 juin 2005
Statut
Membre
Dernière intervention
14 septembre 2005

Ben si, justement, mais, il y a quelque temps, j'avais posté la bas
pour une question sur mc++, on m'avait répondu que c'était du .NET, et
qu'il fallait donc que je m'adresse ici ! Et comme on m'a toujours
répondu ici, avec mes problèmes mélangeant C# et MC++, je continue
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Membre
Dernière intervention
14 février 2014
38
ah ok...

mais je ne connais pas suffisamment C++ pour t'aider.

Sébastien FERRAND
Messages postés
36
Date d'inscription
lundi 13 juin 2005
Statut
Membre
Dernière intervention
14 septembre 2005

Merci quand même ! Et en plus, je viens de trouver comment rentrer dans
la partie non managée por déboger, chose que je n'arrivais pas à faire
jusqu'ici, donc j'espère un dénouement rapide !
Messages postés
903
Date d'inscription
mercredi 23 février 2005
Statut
Membre
Dernière intervention
16 juin 2010
2
Si tu fais Personne * personne ; et en suite personne->set_Personne_Nom("Jean") ;

Ca fait te marquer ca : NullReferenceException ;

Il faut faire personne = new Personne() ; avant

C'est peut être le cas pour ca ClasseNonManagee *, tu as peut etre oublié de

l'initialiser....
Messages postés
36
Date d'inscription
lundi 13 juin 2005
Statut
Membre
Dernière intervention
14 septembre 2005

Et non, malheureusement, si ça avait été aussi simple, je pense que je l'aurais vu au bout de tout ce temps !!

Sinon, comme prévu, le dénouement fut rapide : en fait, le problème
venait d'ailleurs, c'était l'appel de la fonction en lui même : le
dernier paramètre "NbPoints" n'était pas en concordance avec la taille
réelle du tableau.

En fait, nous ne nous étions pas compris avec le développeur de la dll
non managée sur ce qu'était ce NbPoints. Pour moi, c'était tout
simplement le nombre d'éléments du tableau array, mais pour lui,
c'était le nombre de points du tableau, en sachant que les doubles
étaient en fait des coordonnées (x,y) de points. Donc, quand je passais
nbPoints, il fallait en fait passer nbPoints/2 !!! Et le
NullReferenceException venait donc d'un accès à une case mémoire non
allouée...

Quand on y repense, c'est très c.., mais bon, c'est résolu...