Des tableaux de chaînes de caractères en C++Managé
Je suis en train d'écrire une application en C++, mais je ne peux pas travailler sur la façon de déclarer un tableau de chaînes de caractères.
Chaîne^ linet[];
déclenche une erreur
'System::String ^' : un tableau natif ne peut pas contenir ce type géré
Donc je suppose qu'il y a une façon différente de le faire pour les types de données gérés. Qu'est-il exactement?
- Juste un peu pinailler: Alors que le C++ & C++/CLI, à ma connaissance, être compilé dans le même code, en fait ils sont deux langues distinctes.
Vous devez vous connecter pour publier un commentaire.
Pensez-vous vraiment dire Managed C++? Pas du C++/CLI?
En supposant que vous êtes réellement à l'aide de C++/CLI (à cause du message d'erreur que vous avez posté), il y a deux façons de le faire:
permettra de créer une matrice, c'est à dire le même type string[] en C#.
va créer un le C++ tableau (je ne l'ai jamais essayé avec des tableaux qu'il fonctionne avec des conteneurs stl, donc, il faut travailler ici, trop).
http://www.codeproject.com/KB/mcpp/cppcliarrays.aspx
Qui devrait avoir toutes les réponses dont vous avez besoin 🙂
Lorsque l'on travaille avec le C++ (aka. C++/CLI aka. C++/CLR), vous devez tenir compte de vos types de variables dans tout ce que vous faites. Tout "géré" type (en gros, tout ce qui dérive de Système::un Objet) ne peut être utilisé dans un contexte de la gestion. Un standard C++ tableau fondamentalement crée une taille fixe de la mémoire-bloc sur le tas, avec sizeof(type) x NumberOfItems octets, puis parcourt cette. Une gestion de type ne peut pas être garantie à rester au même endroit sur le tas comme il était à l'origine, c'est pourquoi vous ne pouvez pas le faire 🙂
type^
), mais le C++/CLI n'. ...Maintenant que j'y pense, la personne qui a posé la question a obtenu les deux mélangés, trop.Vous utilisez une classe de collection de .Net. Pour exemple: