CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[C++] list dans .NET

m-2
m-2
Niveau 10
26 octobre 2006 à 19:02:58

dans le .h de ma fenetre princiale (en mode CLR) je défini la list suivante:

private:
std::list <ClFichier^> m_fichier;

ca me donne comme bug lors de la compilation:

error C4368: cannot define ´m_fichier´ as a member of managed ´PicViewer::formPrincipal´: mixed types are not supported

qu´es-ce que ca veut dire au juste??
j´ai aussi esseyer de déclarer un arraylist :

ArrayList^ m_fichiers;

// pour la lecture
ClFichier^ Fichier(int p_indice)
{
return static_cast<ClFichier^>(m_fichiers[p_indice
]);
}

mais quand je fais :

ClFichier^ fichier= gcnew ClFichier(image, nomFichier, extension, sfichier.size, image->Height, image->Width);

m_fichiers->Add(fichier); <-- ce serais cette ligne le probleme..

ca me donne comme erreur (lors de l´exécution de cette commande et non lors de la compilation) :

Object reference not set to an instance of an object.

je sais pas trop si c´est clair, je ne donne pas plus de code que ca puisque le reste ne me semble pas très important à ce problème... m´enfin, si vous avez des idées hésitez pas, car moi je suis à sec!

godrik
godrik
Niveau 30
26 octobre 2006 à 19:51:14

je ne sai pas trop.
Je fais du C++ (pas .net) et je ne comprends pas la notation:
ClFichier^

Fvirtman
Fvirtman
Niveau 10
26 octobre 2006 à 21:20:06

pareil, je ne me sers jamais des ^ (le truc de .NET) (a part pour l´opérateur XOR)

et si tu faisais :

std::list <ClFichier> m_fichier;

ou alors des vrais pointeurs :

std::list <ClFichier*> m_fichier;

ça marche pas ?

Et sinon, si qq un peut nous dire ce que veut dire le ^ dans ce cas ?

m-2
m-2
Niveau 10
26 octobre 2006 à 21:48:40

je crois que le ^ remplace le * en .NET car lorsque je déclare ma liste ainsi:

std::list <ClFichier*> m_fichiers;

--> erreur:
cannot use this indirection on type ´ClFichier´

--> ainsi que la meme erreur que précédemment :
error C4368: cannot define ´m_fichiers´ as a member of managed ´PicViewer::formPrincipal´: mixed types are not supported

et si je déclare comme ca:
std::list <ClFichier> m_fichier

eh bien ca donne une list d´objet, ce qui n´est pas réelement ce que je veux (d´autant plus que ca donne un nombre incroyable de bug dans xmemory.h et list.h)

Fvirtman
Fvirtman
Niveau 10
26 octobre 2006 à 21:53:07

Oulala ! pourquoi ils ont eu besoin de changer les pointeurs ?
Il doit y avoir une raison !

Moi je suis encore un vieux du C/C++, avec des bons pointeurs a coup d´étoile ! :-)
Mais je suis pret pour un cours de ^

m-2
m-2
Niveau 10
26 octobre 2006 à 21:57:15

en faite c´est parce que C++/CLI de .NET n´est pas vraiment du C++ mais plutôt une imitation, d´ou le fait qu´il devrait prochainement etre renommer CLI++ (ou quelque chose dans le genre)..

par exemple, on déclare une classe "ref class" et non juste "class", de meme qu´on utilise des "for each" ou encore les "property" d´une classe qui utilise les getter/setter...

bon, reste que je m´y connais pas trop, notre prof nous a tout déballer ca l´an passé pour qu´on puisse rapidementfaire du CLI, a nous de comprendre le pourquoi du comment!

dnob700
dnob700
Niveau 10
27 octobre 2006 à 21:42:41

Dans mon souvenir, il y avait deux langages distinct :

le C++/CLI qui est du vrai C++ compiler nativement mais qui peut utiliser les énormes bibliothèques objets du framework .NET, et le C++.NET qui fait la même chose, mais avec des extensions particulières et qui est compilé en IL.

dans ton cas, je suppose que c´est ce langage ci que tu utilise non ?

(mis je me demande si la différence entre les deux n´a pas disparue ces dernières années).

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Création de sites web
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment