Avatar billede janegil Nybegynder
09. maj 2007 - 15:21 Der er 4 kommentarer og
1 løsning

navnløs enum i Visual Studio walkthrough

Jeg sliter med en VS walkthrough ms-help://MS.MSDNQTR.v80.en/MS.MSDN.v80/MS.VisualStudio.v80.en/dv_vswalk/html/ff258cfd-ccf1-4986-815e-e586809b9f51.htm

MyProjectView.h definerer CMyProjectView. Deriblant
enum{ IDD = IDD_MYPROJECT_FORM };

Hva skal det bety? En enum uten navn, og kun én verdi? Viktig er det visst også, det er nok IDD_MYPROJECT_FORM som forbinder programmet med Winddows-ressursen?
Avatar billede bertelbrander Novice
09. maj 2007 - 18:41 #1
Navnløse enum's er en almindelig brugt metode til at lave class scoped konstanter.
Til forskel for const kan de initialiseres i class definitionen.
De kan også bruges på steder hvor man ikke kan bruge const, f.eks:
class X
{
public:
  enum { SIZE = 1024 };
  int Array[SIZE];
};

Den kode du viser ligner MFC, hvor det bruges meget til at linke et ID til en class.
I en fil (normalt resource.h) har man en række defines:
#define IDD_MYPROJECT_FORM 1023
I class'en laver man så IDD som du viser. Alle dialoger har så en IDD, men med forskellige værdier.

(Jeg synes at det er en dårlig ide at lære MFC.)
Avatar billede janegil Nybegynder
10. maj 2007 - 10:11 #2
Ja, det var visst et svar, og på mere enn jeg spurte om.

Hvorvidt MFC er en dårlig ide? Om nå forutsetningen min er Microsoft og .NET, er MFC fortsatt en dårlig ide? Ville C# eller Visual C++ uten MFC være bedre forslag? Dårlighet er relativt.

Etter å ha lest Frank Brokken http://www.icce.rug.nl/documents/cplusplus/ og hans rimelig klare visjoner om defensif C++, føltes det som å hoppe fallskjerm ut over jungelen - om natten - å bli kastet ut i eksempelkode jeg iffe finner frem og bak på, og som endatil ikke virker. Sistnevnte er kanhende en fordel, så blir jeg tvunget til å hugge meg en sti i jungelen.

Ellers leser jeg Brokken 10.1.3 som om
static int const IDD = IDD_MYPROJECT_FORM
burde være OK? (Ikke at jeg er gal nok til å pille ved kjernen i hva VS har generert for meg.)

Men - du har allerede svart, så legg et svar, om det så er tomt.
Avatar billede bertelbrander Novice
10. maj 2007 - 20:03 #3
Jo, man kan også bruge static const. Den vil dog optage plads.

Ja, MFC er under alle omstændigheder en dårlig ide (IMHO).

Jeg har programmeret noget i MFC men foretrækker langt ren Win32-API. Det er lidt mere besværligt at bruge, til gengæld er det meget rent og ligetil at bruge.

Hvis du vil bruge et GUI bibliotek, og det er der flere gode grunde til, findes der en del der er meget bedre end MFC og kan det samme eller mere. F.eks:
http://www.trolltech.com/products/qt
http://www.wxwidgets.org/
http://smartwin.sourceforge.net/

De to første har yderligere den fordel at de også virker på andre platforme end Windows.

Jeg samler ikke på point.
Avatar billede janegil Nybegynder
11. maj 2007 - 09:06 #4
OK, så tar jeg dem av bordet. Tusen takk skal du ha!
Avatar billede bertelbrander Novice
12. maj 2007 - 01:37 #5
Husk at acceptere dit eget svar så vi kan få spørgsmålet rigtigt lukket.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester