Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Anonymous

unregistriert

11

24.09.2006, 13:17

Man kann nicht auf bools casten, es geht wenn schon nur so:

C-/C++-Quelltext

1
2
BOOL altes_bool = TRUE;
bool neues_bool = altes_bool != 0;


Und unsigned long auf HMENU geht mit reinterpret_cast ohne Probleme.

Nur weil die Warnungen ja immer dieselben sind, bedeutet das nicht das man sie Links liegen lassen darf.

Das Gurke

Community-Fossil

Beiträge: 1 996

Wohnort: Pinneberg

Beruf: Schüler

  • Private Nachricht senden

12

24.09.2006, 13:18

Du solltest deinen Quellcode überarbeiten das KEINE Warnungen mehr auftauchen. Warnungen sind nicht selten Fehler ;) Und Warnungen abschalten ... Ich glaub dazu werden andere dir noch was sagen ^^

Edit: Verdammt, da war nixda schneller -_- Aber ein Zitat ist mir noch eingefallen.
"Fehler stellt man nicht aus, man behebt sie" ;)

13

24.09.2006, 13:25

@ nix da

warning C4312: 'reinterpret_cast' : conversion from 'unsigned long' to 'HMENU' of greater size

Zitat


Nur weil die Warnungen ja immer dieselben sind, bedeutet das nicht das man sie Links liegen lassen darf.


In diesem Fall haben sie aber alle dieselbe Ursache.


Das mit bool werde ich ändern
Ich gebe bei der Arbeit immer 100%

6% Montags
30% Dienstags
35% Mittwochs
25% Donnerstag
4% Freitag

14

24.09.2006, 20:58

@ nix da

meintest du das mit den Zeigern so?

Verändertes Projekt
Ich gebe bei der Arbeit immer 100%

6% Montags
30% Dienstags
35% Mittwochs
25% Donnerstag
4% Freitag

Anonymous

unregistriert

15

24.09.2006, 21:13

Fast.

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
    case WM_COMMAND:
        {
            switch (wParam)
            {
            case ID_OK:
                {
                    reinterpret_cast<Button*>(WinGui::instance().get_window(ID_WINDOW)->get_element (ID_OK))->do_command ();
                } break;
            }
        } break;
Das ist doch eigentlich Blödsinn oder?

Du bekommst das HWND des Buttons, also warum dann noch get_element und ein switch? warum nicht einfach

WinGui::instance().do_command (wParam, lParam, hwnd);

? Dann müssteste die WndProc nie mehr anrühren! So muss ich die doch für jeden neuen Button anpassen, ist doch doof.

16

24.09.2006, 21:21

So wäre es doch auch für jeden Button gültig:

C-/C++-Quelltext

1
2
3
4
case WM_COMMAND:
        {   
            reinterpret_cast<Button*>(WinGui::instance().get_window(ID_WINDOW)->get_element (static_cast<unsigned long>(wParam)))->do_command ();
        } break;
Ich gebe bei der Arbeit immer 100%

6% Montags
30% Dienstags
35% Mittwochs
25% Donnerstag
4% Freitag

Anonymous

unregistriert

17

24.09.2006, 21:31

Anfänger
So könnte man es auch machen. Guck mal ob Du ein etwas besseres (Flexibler und Fehlerunanfälligeres) Prinzip findest.

Denn... Wer codet schon gerne auf der WndProc? Ich net.

18

24.09.2006, 21:36

Ich habe gerade festgestellt, dass es so nicht geht. Diese Version von mir führt zu einem Absturz, wenn ich z.B. eine Combobox anklicke. Jetzt erstelle ich eine virtuelle do_command Funktion in der Element Klasse und dann kommt noch in die WinGui eine Funktion, die diese dann aufruft. Ich denke das ist Flexibel genug.
Ich gebe bei der Arbeit immer 100%

6% Montags
30% Dienstags
35% Mittwochs
25% Donnerstag
4% Freitag

Anonymous

unregistriert

19

24.09.2006, 21:37

Anfänger
Ist schon ein besserer Anfang. Probier damit mal was rum und teste es ausgiebig ;) Wenn deine WinGUI sowas kann, ist sie sehr flexibel.

20

12.10.2006, 15:23

Dieser Link geht jetzt auch wieder.
Ich gebe bei der Arbeit immer 100%

6% Montags
30% Dienstags
35% Mittwochs
25% Donnerstag
4% Freitag

Werbeanzeige