Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
18 / 18 / 2
Регистрация: 05.12.2013
Сообщений: 95

Корректный выход из приложения

16.03.2014, 09:31. Показов 1176. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет, при нажатии на кнопку моя программа должна закрыться, пишу так:
C++
1
PostQuitMessage(0);
Но выскакивает ошибка
Unhandled exception at 0x76788F44 (user32.dll) in TextWrite.exe: 0xC0000005: Access violation writing location 0x013E796E.
я пробовал все команды по очереди:
C++
1
2
3
4
PostMessage(hWnd, WM_CLOSE, 0, 0);
TerminateProcess(GetCurrentProcess(), 0);
CloseHandle(hWnd);
::PostMessage(hWnd, WM_CLOSE, 0L, 0L);
Тоже самое
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.03.2014, 09:31
Ответы с готовыми решениями:

Выход из приложения
Здравствуйте, снова я с тупыми вопросами по winapi. Пытаюсь сделать некое подобие калькулятора, который мог бы(пока только) складывать...

Корректный выход из приложения
Проблема в том, что не могу сделать корректный выход из приложении. Как есть. Системная кнопка "назад" завершает приложение...

Корректный выход
Доброго времени суток! Пытаюсь разобраться с fork(), а точнее с корректным выходом из fork'нутого процесса. Есть стандартный код работы с...

4
Модератор
Эксперт по электронике
8978 / 6744 / 921
Регистрация: 14.02.2011
Сообщений: 23,852
16.03.2014, 09:49
РЕН1998,
WinMain покажи, есть подозрение что стек рушится
0
18 / 18 / 2
Регистрация: 05.12.2013
Сообщений: 95
16.03.2014, 10:03  [ТС]
C++
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
int WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstanse, LPSTR lpCmdLine, int nCmdShow)
{
    HINSTANCE hInst;
    WNDCLASSEX wndcx;
    wndcx.cbSize = sizeof(WNDCLASSEX);
    wndcx.style = CS_HREDRAW | CS_VREDRAW;
    wndcx.lpfnWndProc = WndProc;
    wndcx.cbClsExtra = 0;
    wndcx.cbWndExtra = 0;
    wndcx.hInstance = hInstance;
    wndcx.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_APPLICATION));
    wndcx.hCursor = LoadCursor(NULL, IDC_ARROW);
    wndcx.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
    wndcx.lpszMenuName = NULL;
    wndcx.lpszClassName = szWindowClass;
    wndcx.hIconSm = LoadIcon(wndcx.hInstance, MAKEINTRESOURCE(IDI_APPLICATION));
 
    if (!RegisterClassEx(&wndcx))
    {
        MessageBox(NULL, TEXT("Ошибка регистрации класса"), TEXT("Ошибка"), 0);
        return 1;
    }
 
    RECT  screenrect;
    GetWindowRect(GetDesktopWindow(), &screenrect);
    int x = screenrect.right;
    int y = screenrect.bottom;
 
    hInst = hInstance;
    HWND hWnd = CreateWindow(szWindowClass, TEXT(""), WS_POPUP, 0, 0, x, y, NULL, NULL, hInstance, NULL);
    if (!hWnd)
    {
        MessageBox(NULL, TEXT("Ошибка создания окна"), TEXT("Ошибка"), 0);
        return 1;
    }
    int widthTextBox = 200;
    int xTextBox = x / 2 - widthTextBox/2;
    int yTextBox = y / 2 - 10;
    
      hWndEdit = CreateWindowEx(WS_EX_CLIENTEDGE, TEXT("Edit"), NULL,
                               WS_CHILD | WS_VISIBLE, xTextBox, yTextBox, widthTextBox,
                               20, hWnd, NULL, NULL, NULL);
    
     hWndButton = CreateWindow(
         L"BUTTON", 
         L"Выход", 
         WS_TABSTOP | WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON, 
         xTextBox, 
         yTextBox+ 50,  
         widthTextBox,  
         30,
         hWnd, 
         (HMENU)200,
         NULL,
         NULL);
 
    ShowWindow(hWnd,nCmdShow);
    UpdateWindow(hWnd);
    MSG msg;
 
 
    while ( GetMessage(&msg,NULL,0,0))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
 
    return (int)msg.wParam;
}
0
Модератор
Эксперт по электронике
8978 / 6744 / 921
Регистрация: 14.02.2011
Сообщений: 23,852
16.03.2014, 10:13
РЕН1998,
теперь WinProc
ошибка у тебя внутри системы
Цитата Сообщение от РЕН1998 Посмотреть сообщение
0x76788F44 (user32.dll)
значит или память неправильно выделил или пишешь в неразмеченную область или с переменными косячишь
пока я увидел что ты Эдиту ИД не дал
Цитата Сообщение от РЕН1998 Посмотреть сообщение
hWndEdit = CreateWindowEx(WS_EX_CLIENTEDGE, TEXT("Edit"), NULL,
WS_CHILD | WS_VISIBLE, xTextBox, yTextBox, widthTextBox,
20, hWnd, NULL, NULL, NULL);
надеюсь hWndEdit и hWndButton у тебя глобальные
а вообще такие косяки вылавливаются отладчиком
0
18 / 18 / 2
Регистрация: 05.12.2013
Сообщений: 95
16.03.2014, 11:08  [ТС]
Все, я понял, дело в том, что я неправильно текст получаю

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
LPTSTR LPSTRING;
//......
case WM_COMMAND:                       
        switch (LOWORD(wParam))
        {
        case ID_MYBUTTON:
            //SendMessage(hWndEdit, WM_GETTEXT, (WPARAM)10, LPARAM(LPSTRING));//Ошибка где-то тут
            if (LPSTRING == TEXT("выход"))
            {
                //::PostMessage(hWnd, WM_CLOSE, 0, 0);
                //TerminateProcess(GetCurrentProcess(), 0);
                //CloseHandle(hWnd);
                //Beep(500, 500);
                //::PostMessage(hWnd, WM_CLOSE, 0L, 0L);
                exit(0);
            }
        }
        break;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.03.2014, 11:08
Помогаю со студенческими работами здесь

Как сделать выход из приложения по кнопке выход
Привет! Имеется 3 активити. А1 - запускается при запуске приложения(анимация) А2 - меню ( с кнопкой выход) А3 - мейн...

Корректный запуск приложения
Здравствуйте! Я написал приложение для работы с БД и отдельно сделал апдейтер который скачивает с сервера новую версию проги и запускает...

Выход из приложения
Доброго времени суток. Помогите решить такую проблему... Есть форма и на ней кнопка выход. Нужно, чтобы и при нажатии на крестик в...

Выход из приложения
У меня в меню есть кнопка Файл->Выход. Все перелопатила, не могу найти нигде, как сделать простой Выход (закрытие приложения). Помогите,...

Выход из приложения
Здравствуйте. Возникла необходимость сохранять состояния игры при выходе из игры нажатием на центральную кнопку или нажатием стрелки назад...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru