Pb mix managed et unmanaged c++ [Résolu]

Signaler
Messages postés
193
Date d'inscription
jeudi 4 décembre 2003
Statut
Membre
Dernière intervention
12 août 2010
-
Messages postés
193
Date d'inscription
jeudi 4 décembre 2003
Statut
Membre
Dernière intervention
12 août 2010
-
Bonjour.
J'essaye de faire une classe managée qui servira de wrapper entre mon projet c# et une classe c++ native.
Mon problème est que le compilateur me met une erreur dans mon code :

#include <string>
#include <vcclr.h>
#using <mscorlib.dll>
using namespace System;


namespace NS {


 public __gc class Mclass
 {
 public:
  // Constructeur
  Mclass(std::string, std::string);


 private:
  // Classe unmanaged
  Uclass *cl;  // ERREUR ICI : error C2143: erreur de syntaxe : absence de ';' avant '*'

 };


#pragma unmanaged
 __nogc class Uclass
 {
 public:
  // Constructeur
  Uclass(std::string, std::string);


  // Destructeur
  ~Uclass(void);


 };
#pragma managed
}

Aparement il refuse de me faire un pointeur sur ma classe non managée, j'ai pourtant vu des dizaines d'exemples sur le net où l'ont peut voir ce morceau de code. Meme si je ne fait que rarement du c++ je ne pense pas que ce ce soit faux.
Pour info je compile avec MSVC++ 2005.

Si quelqu'un à une idée ou a deja rencontré ce pb je suis tout ouïe :)
Merci d'avance

2 réponses

Messages postés
1137
Date d'inscription
lundi 17 novembre 2003
Statut
Membre
Dernière intervention
23 janvier 2016
21
Salut, apparemment
il ne reconnait pas Uclass, si tu compiles dans cet ordre là il faut faire une prédéclaration ou mettre Uclass en premier, sinon y'à pas un truc de réference avec l'opérateur ^ à la place de * ?
Je pose la question car je suis toujours sous vs2003.
Messages postés
193
Date d'inscription
jeudi 4 décembre 2003
Statut
Membre
Dernière intervention
12 août 2010

En effet, en deplacant Uclass avant je n'ai plus l'erreur de compilation. Dire que je ramais pour juste ça ^^
En tout cas merci :)