Variable in MessageBox() ausgeben
-
ich möschte eine Variable in einer MessageBox() ausgeben lassen ich habe es so probiert:
string variable = "Variable"; switch (message) { case WM_CREATE: button1 = CreateWindow ( "button", "Erlauben", WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, 20, 20, 65, 40, hWnd, (HMENU)1, hInst, NULL); break; case WM_COMMAND: wmId = LOWORD(wParam); wmEvent = HIWORD(wParam); switch (wmId) { case 1: MessageBox(hWnd,variable,"Hier sollte eine Variable Stehen!",NULL); break; }
kam aber zu folgendne fehler:
------ Erstellen gestartet: Projekt: test, Konfiguration: Debug Win32 ------ test.cpp c:\dokumente und einstellungen\tomhalo\eigene dateien\visual studio 2010\projects\test\test\test.cpp(156): error C2664: 'MessageBoxA': Konvertierung des Parameters 2 von 'std::string' in 'LPCSTR' nicht möglich Kein benutzerdefinierter Konvertierungsoperator verfügbar, der diese Konvertierung durchführen kann, oder der Operator kann nicht aufgerufen werden ========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========
Meine frage jetzt wie gebe ich eine Variable in einer MessageBox() aus und das möglichst unkompliziert
-
Hi,
char str[] = "Hi!";
MessageBox(0, str, "^^", MB_OK);Naja, kann man mal übersehen ;P
-
lolli_-) schrieb:
Hi,
char str[] = "Hi!";
MessageBox(0, str, "^^", MB_OK);Naja, kann man mal übersehen ;P
Das ist richtig, Erklärungen schaden aber nicht.
Du musst einen C-String (char array) übergeben.
Steht ja auch in der Fehlermeldung.char str[] = "Hi!"; MessageBox(0, str, "^^", MB_OK);
-
Wuhu dank euch
-
Und nur noch so als Tipp,
wenn du die Fehlermeldung nicht verstehst
solltest du dich zwischendurch vielleicht noch
mal etwas intensiver mit c/c++ beschäftigen
bevor du weiter mit WinApi machst
-
Hinweis: Charles Petzold bietet dafür in seinem Buch zur Windows-Programmierung eine spezielle Funktion MessageBoxPrintf an, mit der Variable samt Formatierung in einen String gepackt werden. Ist genial und einfach - gehört in die Werkzeugkiste der WinApi-Programmierung.
-
So kannst du das auch machen:
MessageBox( hWnd,variable.c_str(),"Hier sollte eine Variable Stehen!",NULL );
Dann gewöhnst du dir gleich ans, STL-Strings statt nackter Chars zu benutzen. Das hilft bei der Fehlervermeidung.
Gruß Kimmi
-
kimmi schrieb:
... Dann gewöhnst du dir gleich ans, STL-Strings statt nackter Chars zu benutzen. Das hilft bei der Fehlervermeidung.
Braucht man denn überall STL-Strings? Die haben einen Überbau und sind bei einfachen Dingen verzichtbar. Das hat aber mit WinApi nichts zu tun. Wollen wir jetzt wieder die dogmatische Diskussion C versus C++? :p