Bonjour tout le monde,
Un peu nouveau dans le monde du C++/CLI, je rencontre beaucoup de difficult� � d�clarer une enum manag�, et plus pr�cis�ment o� effectuer cette d�claration dans mon code.
Pour le moment, je d�clarais mes enum dans mon fichier .h, plus pr�cis�ment � l'int�rieur de ma classe manag�. Soit :
Hors en reprenant un ancien projet d'un autre d�veloppeur, je ne suis pas capable de reproduire ce type de d�claration au m�me emplacement. Lorsque je passe ensuite � l'affichage de l'interface dans le designer, mon Visual Studio 2003 plante et je suis oblig� de terminer l'application. Ensuite impossible de r� ouvrir le projet tant que je n'ai pas comment� ou supprim� cette enum.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 #pragma once namespace MyNameSpace {<div style="margin-left:40px">using namespace System; using namespace System::ComponentModel; using namespace System::Collections; using namespace System::Windows::Forms; using namespace System::Data; using namespace System::Drawing; __gc class MyClass { public:<div style="margin-left:40px">__value enum MyEnum { VAL1, VAL2, VAL3 }; MyClass(void) {<div style="margin-left:40px">InitializeComponent();</div>}</div>protected:<div style="margin-left:40px">void Dispose(Boolean disposing) {<div style="margin-left:40px">if (disposing && components) {<div style="margin-left:40px">components->Dispose();</div>}</div></div>private:<div style="margin-left:40px">System::ComponentModel::Container * components; void InitializeComponent(void) { <div style="margin-left:40px">// Code supprimé ici</div>}</div>};</div>}
J'ai refait mes essais avec un projet vierge, aucun probl�me pour placer la d�claration de l'�num avec les membres public de ma classe. Ensuite retour dans le code du projet que j'ai r�cup�r� et rebelote pour les crashs de Visual Studio.
La solution que j'ai trouv� est de d�clarer mon enum en dehors de ma classe, directement dans le namespace. A ce moment l�, je n'ai plus de crash du designer de Visual Studio et � l'ex�cution tout � l'air de bien se passer...
Quelqu'un pourrait t-il �clairer ma lanterne car j'ai horreur de faire quelque chose que je ne comprends pas ... enfin en m�me temps cela provient surement de mon niveau pitoyable en programmation ...
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 #pragma once namespace MyNameSpace {<div style="margin-left:40px">using namespace System; using namespace System::ComponentModel; using namespace System::Collections; using namespace System::Windows::Forms; using namespace System::Data; using namespace System::Drawing; __value enum MyEnum { VAL1, VAL2, VAL3 }; __gc class MyClass { public:<div style="margin-left:40px">MyClass(void) {<div style="margin-left:40px">InitializeComponent();</div>}</div>protected:<div style="margin-left:40px">void Dispose(Boolean disposing) {<div style="margin-left:40px">if (disposing && components) {<div style="margin-left:40px">components->Dispose();</div>}</div></div>private:<div style="margin-left:40px">System::ComponentModel::Container * components; void InitializeComponent(void) { <div style="margin-left:40px">// Code supprimé ici</div>}</div>};</div>}
O� doit-on d�clarer une enum dans une Winform en C++ pour que le code soit propre ???
Merci d'avance![]()
Partager