Je suis en VS 2003, framework 1.1.
Moi, ^ provoque une erreur à la complilation et je dois utiliser * à la place.
En fait, j'ai une classe managée "program" qui est en quelque sorte la racine de mon fichier XML. Elle contient ,entre autres, un vecteur de variables globales de taille variable ( que je n'arrive toujours pas à faire vu que vector est non managé, et que System::Collections::Generic::List ne m'est pas disponible.
Lorsque j'essaye de créér PG en global comme ceci :
static program __gc * PG = __gc new program() ;
j'obtiens
"cannot declare a global or static managed type object or a __gc pointer"
J'ai même essayé de faire une classe qui ne comprend que PG, mais ça donne le même résultat.
Mon .cpp principal est organisé comme ceci :
** Variables globales ( c'est ici que je veux mettre PG )
** namespace {
.... contient des fonctions qui utilisent PG, elles instancient les objets issus du parsing
}
** Ensuite une grammaire de parsing :
1 2 3 4 5 6 7 8 9
| struct cga_grammar : public grammar<cga_grammar>
{
template <typename ScannerT>
struct definition
{
definition(cga_grammar const& /*self*/)
{ ... }
}
} |
** Enfin, le main qui lance le parsing et serialise en XML
Le fait de mettre PG dans le main ne convient pas car il n'est pas alors accessible dans les fonctions du name space ......
J'espère avoir été clair, merci encore
Partager