Pb mix managed et unmanaged c++

Résolu
mastercatz Messages postés 193 Date d'inscription jeudi 4 décembre 2003 Statut Membre Dernière intervention 12 août 2010 - 26 janv. 2007 à 19:24
mastercatz Messages postés 193 Date d'inscription jeudi 4 décembre 2003 Statut Membre Dernière intervention 12 août 2010 - 27 janv. 2007 à 02:23
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

yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 25
26 janv. 2007 à 19:42
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.
3
mastercatz Messages postés 193 Date d'inscription jeudi 4 décembre 2003 Statut Membre Dernière intervention 12 août 2010
27 janv. 2007 à 02:23
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 :)
0
Rejoignez-nous