Das Programm wurde mit Code 0 (0x0) beendet.

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Das Programm wurde mit Code 0 (0x0) beendet.

    Hallo Community,

    ich bin neu hier im Forum, da ich einige Fragen oder auch Probleme mit Visual C++ habe und mir hier Hilfe und Antworten erhoffe :)
    Ich fange mal vorne an.
    Wie der Titel schon sagt, beendet sich mein Programm immer, sobald ich auf ein von mir erstelltes Edit Feld klicke oder auch sofort nach dem Debuggen, wenn ich dem Feld einen Text zugewiesen habe.
    Meldungen:

    Quellcode

    1. "GUI 2.exe": "C:\Users\Kevin\Documents\Visual Studio 2010\Projects\GUI 2\Debug\GUI 2.exe" geladen, Symbole wurden geladen.
    2. "GUI 2.exe": "C:\Windows\SysWOW64\ntdll.dll" geladen, Cannot find or open the PDB file
    3. "GUI 2.exe": "C:\Windows\SysWOW64\kernel32.dll" geladen, Cannot find or open the PDB file
    4. "GUI 2.exe": "C:\Windows\SysWOW64\KernelBase.dll" geladen, Cannot find or open the PDB file
    5. "GUI 2.exe": "C:\Windows\SysWOW64\user32.dll" geladen, Cannot find or open the PDB file
    6. "GUI 2.exe": "C:\Windows\SysWOW64\gdi32.dll" geladen, Cannot find or open the PDB file
    7. "GUI 2.exe": "C:\Windows\SysWOW64\lpk.dll" geladen, Cannot find or open the PDB file
    8. "GUI 2.exe": "C:\Windows\SysWOW64\usp10.dll" geladen, Cannot find or open the PDB file
    9. "GUI 2.exe": "C:\Windows\SysWOW64\msvcrt.dll" geladen, Cannot find or open the PDB file
    10. "GUI 2.exe": "C:\Windows\SysWOW64\advapi32.dll" geladen, Cannot find or open the PDB file
    11. "GUI 2.exe": "C:\Windows\SysWOW64\sechost.dll" geladen, Cannot find or open the PDB file
    12. "GUI 2.exe": "C:\Windows\SysWOW64\rpcrt4.dll" geladen, Cannot find or open the PDB file
    13. "GUI 2.exe": "C:\Windows\SysWOW64\sspicli.dll" geladen, Cannot find or open the PDB file
    14. "GUI 2.exe": "C:\Windows\SysWOW64\cryptbase.dll" geladen, Cannot find or open the PDB file
    15. "GUI 2.exe": "C:\Windows\SysWOW64\msvcr100d.dll" geladen, Symbole wurden geladen.
    16. "GUI 2.exe": "C:\Windows\SysWOW64\imm32.dll" geladen, Cannot find or open the PDB file
    17. "GUI 2.exe": "C:\Windows\SysWOW64\msctf.dll" geladen, Cannot find or open the PDB file
    18. "GUI 2.exe": "C:\Windows\SysWOW64\uxtheme.dll" geladen, Cannot find or open the PDB file
    19. "GUI 2.exe": "C:\Windows\SysWOW64\dwmapi.dll" geladen, Cannot find or open the PDB file
    20. "GUI 2.exe": "C:\Windows\SysWOW64\ole32.dll" geladen, Cannot find or open the PDB file
    21. "GUI 2.exe": "C:\Windows\SysWOW64\oleaut32.dll" geladen, Cannot find or open the PDB file
    22. Das Programm "[3592] GUI 2.exe: Systemeigen" wurde mit Code 0 (0x0) beendet.
    Alles anzeigen


    Das Programm:

    Quellcode

    1. #include <windows.h>
    2. #include <stdio.h>
    3. #include <cstdio>
    4. HWND hwndButton;
    5. HWND hwndEdit;
    6. LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
    7. int WINAPI WinMain(HINSTANCE hI, HINSTANCE hPrI, PSTR szCmdLine, int iCmdShow)
    8. {
    9. LPWSTR szName = L"Fensterklasse";
    10. WNDCLASS wc;
    11. wc.style = CS_HREDRAW | CS_VREDRAW;
    12. wc.lpfnWndProc = WndProc;
    13. wc.cbClsExtra = 0;
    14. wc.cbWndExtra = 0;
    15. wc.hInstance = hI;
    16. wc.hIcon = LoadIcon (NULL,IDI_WINLOGO);
    17. wc.hCursor = LoadCursor (NULL, IDC_ARROW);
    18. wc.hbrBackground = (HBRUSH) GetStockObject(GRAY_BRUSH);
    19. //wc.hbrBackground = CreateSolidBrush(RGB(0,0,0));
    20. wc.lpszMenuName = NULL;
    21. wc.lpszClassName = szName;
    22. RegisterClass(&wc);
    23. HWND hwnd = CreateWindow(szName, L"<Graphical User Interface>", WS_SYSMENU | WS_SIZEBOX,
    24. 0,0,300,200,NULL,NULL,hI,NULL);
    25. ShowWindow(hwnd, iCmdShow);
    26. UpdateWindow(hwnd);
    27. MSG msg;
    28. while(GetMessage(&msg,NULL,0,0))
    29. {
    30. TranslateMessage(&msg);
    31. DispatchMessage(&msg);
    32. }
    33. return msg.wParam;
    34. }
    35. LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
    36. {
    37. HDC hdc;
    38. PAINTSTRUCT ps;
    39. switch(message)
    40. {
    41. case WM_PAINT:
    42. hdc = BeginPaint(hwnd, &ps);
    43. TextOut(hdc, 20, 20, L"Wert", 4);
    44. EndPaint(hwnd, &ps);
    45. return 0;
    46. case WM_CREATE:
    47. hwndButton = CreateWindow(L"button", L"Einlesen!", WS_VISIBLE | WS_CHILD | BS_PUSHBUTTON,
    48. 160, 20, 100, 18, hwnd, (HMENU)1, GetModuleHandle(0),0);
    49. hwndEdit = CreateWindow(L"edit",L"##############", WS_VISIBLE | WS_CHILD,
    50. 60,20,80,17,hwnd,0, GetModuleHandle(0),0);
    51. return 0;
    52. case WM_COMMAND:
    53. switch(wParam)
    54. {
    55. case 1:
    56. {
    57. wchar_t text[256];
    58. SendMessage(hwndEdit, WM_GETTEXT, 256, (LPARAM)text);
    59. MessageBox(hwnd, text, L"Edit -- Feld", MB_OK);
    60. return 0;
    61. }
    62. }
    63. case WM_DESTROY:
    64. PostQuitMessage(0);
    65. return 0;
    66. }
    67. return DefWindowProc(hwnd, message, wParam, lParam);
    68. }
    Alles anzeigen


    Ersetze ich die #ten durch einen Text, schließt sich die GUI sofort nach dem Debuggen.
    Trage ich keinen Text ein, so öffnet sich die GUI, schließt sich allerdings sobal ich versuche einen Text in das Feld einzutragen.

    Über Hilfe würde ich mich sehr freuen!

    Mit freundlichen Grüßen
    Infemo
  • Infemo schrieb:


    Quellcode

    1. case WM_COMMAND:
    2. switch(wParam)
    3. {
    4. case 1:
    5. {
    6. wchar_t text[256];
    7. SendMessage(hwndEdit, WM_GETTEXT, 256, (LPARAM)text);
    8. MessageBox(hwnd, text, L"Edit -- Feld", MB_OK);
    9. return 0;
    10. }
    11. }
    12. case WM_DESTROY:
    13. PostQuitMessage(0);
    14. return 0;
    Alles anzeigen



    Schau dir mal bei deiner Switch-Konstruktion den WM_COMMAND Case an, der geht mit dem WM_DESTROY über, da der return fehlt.
  • Infemo schrieb:

    Könntest du mir auch noch sagen wie ich normale Button/Edit felder erstelle die nicht so mies aussehen?
    Also Button wäre dann etwas mehr 3D
    Ich meine so wie die normalen Windows Buttons


    Probier es mal mit CreateWindowEx. Dort gibt es einen weiteren extended window style Parameter.

    Genau sagen kann ich es dir nicht, dafür ist es bei mir zu lange her.
  • Ist schon lange her das ich mich mit so etwas befasst habe.

    Zum einen kann die Form der Button von der Entwicklungssystem und vom Betriebssystem abhängig sein.

    Wenn dir da eigene Creationen vorschweben hiess das damals als ich damit hantiert habe, Bitmap-Button oder so ähnlich. Das heisst du ordnest einem Button ein bis vier (?) Bitmaps zu. Je nach Aktivität des Button wird dann ein anderes Bild gezeigt.

    MfG bcc-fan
  • Also erstmal danke für die hilfreichen Antworten, auch wenn nicht das dabei war, was ich eigentlich gesucht habe :)

    Ich wollte einfach nur den gesamten Style der Kontrollstruckturen innerhalb meiner GUI ändern.
    Ich habe erfahren, dass die Sturckturen z.B: Button erst ab dem Betriebssystem das Design verwenden, welches ich gesucht habe.

    Und dies von "default" auf das neue attraktivere Desing names: Common Control 6.0.
    Diesen kann man ganz einfach durch das Ergänzen des folgenden Programmcodes kurz nach den Includes erzeugen:

    Quellcode

    1. #ifdef _UNICODE
    2. #if defined _M_IX86
    3. #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"")
    4. #elif defined _M_X64
    5. #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'\"")
    6. #else
    7. #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")
    8. #endif
    9. #endif


    Vielen Dank trotzdem für eure Hilfe!
    Liebe Grüße
  • @Infemo:
    Der Code beschreibt das Einbinden des Manifestes und funktioniert nur unter MVS.
    Für alle die Über diesen Thread stolpern und nicht MVS benutzen gibt es auch andere möglichkeiten:
    Entweder eine Programmname.manifest Datei erstellen oder mit dem ResourceHacker die Ressource in das Programm einbinbinden.
    Der Inhalt sollte dann je nach Application angepasst werden und die Fühlwerte sollten per google füdnig werden.

    Ansonsten, sollten mal Fehler auftretten könnte es daran liegen das die FUnktion InitCommonControls nicht aufgerufen wird.
    Da manche Controlelemente von dieser Initialzierung abhängig sind, könnte es durch die Verwendung des "WindowsStyles" zu fehlern führen.

    Mfg Rushh0ur