2017-10-13 5 views
-1

Pour un système de collision que je construis je dois avoir un vecteur d'images:Pourquoi ne puis-je pas stocker un PictureBox^dans un fichier std :: vector?

vector<PictureBox^> Wall{ Player1,Wall_1,Wall_2 }; 

Voici comment j'instancié le vecteur, cela ne compile pas avec succès.

vector<PictureBox^> Wall; 

Vous pouvez instancier le vecteur comme ceci parfaitement bien puisque rien n'y est ajouté.

Et quand je tente de compiler le programme avec la première instanciation ce sont quelques-unes des erreurs que je reçois ... enter image description here

J'ai essayé à peu près tous les contenants conformes à la norme tels que la liste et deque, mais pas prévalu.

Des idées?

Répondre

1

Vous ne pouvez pas mélanger C++ standard avec C++/CLI, car leurs types ont des exigences spéciales (comme leurs pointeurs sont collectés). Vous devrez utiliser leurs conteneurs spécifiques si vous voulez y stocker des pointeurs gc-ed.

Par exemple, un tableau d'usage général est List:

List<PictureBox^>^ list = gcnew List<PictureBox^>(); 
+0

Ahh je vois. Merci pour la réponse. Cependant j'ai toujours un problème. La liste est indéfinie. Est-ce que je manque juste un en-tête? – DEFAULT

+0

@DEFAULT Ne le pense pas. Mais il se trouve dans l'espace de noms 'Systems :: Collections :: Generic', donc vous pourriez vouloir ajouter une déclaration using pour cela. – Rakete1111