C++ managé

pma3d Messages postés 36 Date d'inscription lundi 13 juin 2005 Statut Membre Dernière intervention 14 septembre 2005 - 31 août 2005 à 09:35
pma3d Messages postés 36 Date d'inscription lundi 13 juin 2005 Statut Membre Dernière intervention 14 septembre 2005 - 1 sept. 2005 à 18:04
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

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

Sébastien FERRAND
0
pma3d Messages postés 36 Date d'inscription lundi 13 juin 2005 Statut Membre Dernière intervention 14 septembre 2005
31 août 2005 à 11:06
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
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
31 août 2005 à 11:19
ah ok...

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

Sébastien FERRAND
0
pma3d Messages postés 36 Date d'inscription lundi 13 juin 2005 Statut Membre Dernière intervention 14 septembre 2005
31 août 2005 à 12:06
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 !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_emmanuel9 Messages postés 903 Date d'inscription mercredi 23 février 2005 Statut Membre Dernière intervention 16 juin 2010 2
1 sept. 2005 à 17:35
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....
0
pma3d Messages postés 36 Date d'inscription lundi 13 juin 2005 Statut Membre Dernière intervention 14 septembre 2005
1 sept. 2005 à 18:04
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...
0
Rejoignez-nous