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

21

11.12.2015, 21:51

Du musst die Zahl in einen string konvertieren, zb mit std::to_string bzw. std::to_wstring.

Hmmm...
Scheint aus irgendeinem Grund nicht zu klappen.

C-/C++-Quelltext

1
MessageBox(hwnd, static_cast<std::to_wstring>(GetLastError()), TEXT("Error"), MB_OK);

Er gibt mir bei std::to_wstring/std::to_string einen Fehler: overloaded function "std::to_wstring" is not a type name.

Mache ich es falsch?

Sylence

Community-Fossil

Beiträge: 1 663

Beruf: Softwareentwickler

  • Private Nachricht senden

22

11.12.2015, 21:53

Du solltest dich vielleicht fragen, ob eine grafische Benutzeroberfläche schon das richtige Thema für dich ist, wenn du einen integer nicht in einen string bekommst.

Aber zu deinem Problem:
1) Du solltest einfach mal nach std::to_wstring googlen.
2) Du solltest dich darüber informieren, was der Unterschied zwischen casten und konvertieren ist.
3) Du solltest dich mit dem Debugger vertraut machen. Wenn du den einfach benutzen würdest, dann hättest du das ganze Theater gar nicht, um dir den Wert anzugucken.

23

11.12.2015, 21:55

@Sylence

Danke für deine Antwort :)
Ich werde mir auf jeden Fall Morgen deine Punkte mal durcharbeiten.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

25

11.12.2015, 21:59

Neee. Einfach Neee.
Du klickst auf http://lmgtfy.com/?q=std%3A%3Ato_wstring. Du klickst auf eines der ersten Ergebnisse. Du siehst, dass std::to_[w]string eine Funktion ist, die ints etc nach std::[w]string konvertiert. Du realisierst, dass diese Art der Informationsbeschaffung einfach geil ist. (Du erkennst, dass MessageBox[W] einen const wchar_t* (LPCWSTR, [long] pointer to const wide string) haben möchte und dass std::[w]string die Methode c_str() bereitstellst, um einen zeiger auf das erste zeichen dieses strings zu erhalten, da MessageBox[W] natürlich nichts mit dem Objekt einer std::[w]string-Instanz anfangen kann.)

cojo2015

Alter Hase

  • »cojo2015« ist der Autor dieses Themas

Beiträge: 516

Wohnort: bei mir zu Hause

Beruf: Schüler

  • Private Nachricht senden

26

12.12.2015, 12:17

Danke für die Hilfe :thumbsup: Jetzt klappt es. So sieht es aus (Anhang). So sieht der Code aus:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
    //Create the Child window
    HWND_CHILD_New = CreateWindow(G_AppName,
                                TEXT("New Command"),
                                WS_VISIBLE | WS_BORDER | ES_CENTER | CS_NOMOVECARET | WS_CHILDWINDOW | WS_OVERLAPPEDWINDOW,
                                400, 100,
                                340, 375,
                                hwnd,
                                (HMENU)ID_CHILD_NEW,
                                G_hInstance,
                                NULL);

    //Create the Editbox for the name of the command
    HWND_EDIT_AddCommand_Name = CreateWindow(TEXT("EDIT"),
                                TEXT("Name des Befehls"),
                                WS_VISIBLE | WS_CHILD | WS_BORDER,
                                20, 20,
                                300, 20,
                                HWND_CHILD_New,
                                (HMENU)ID_BTN_AddCommand_Descr,
                                G_hInstance,
                                NULL);

    //Create the Editbox for the description of the command
    HWND_EDIT_AddCommand_Descr = CreateWindow(TEXT("EDIT"),
                                 TEXT("Beschreibung des Befehls"),
                                 WS_VISIBLE | WS_CHILD | WS_BORDER,
                                 20, 50,
                                 300, 230,
                                 HWND_CHILD_New,
                                 (HMENU)ID_BTN_AddCommand_Descr,
                                 G_hInstance,
                                 NULL);

    //Create the Apply-Button in the Child window
    HWND_BUTTON_AddCommand_Apply = CreateWindow(TEXT("BUTTON"),
                                   TEXT("Übernehmen"),
                                   WS_VISIBLE | WS_CHILD | WS_BORDER,
                                   20, 300,
                                   150, 30,
                                   HWND_CHILD_New,
                                   (HMENU)ID_BTN_AddCommand_Apply,
                                   G_hInstance,
                                   NULL);

Jetzt haben wir aber das Problem, dass man nicht in die Editboxen etwas hineinschreiben kann. Gibt es dazu einen Befehel?
»cojo2015« hat folgendes Bild angehängt:
  • Unbenannt.PNG

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

27

12.12.2015, 12:38

Es gibt dafür übrigens Resource-Files, die man ganz einfach laden und ein Fenster basierend darauf aufbauen lassen kann. Es gibt sogar einen Designer für diese Files...
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Werbeanzeige