Подтвердить что ты не робот

Как выйти из приложения Win32 через API?

У меня есть приложение С++ Win32, написанное с использованием Win32 API, и я хочу заставить его выйти из одной из функций. Есть что-то вроде Exit() или Destroy() или Abort() что-то подобное, которое просто прекратит его?

4b9b3361

Ответ 1

ExitProcess - это функция, которую вы можете использовать, иначе вы можете использовать exit, обратите внимание, что ни застраховать целостность выключения (т.е. вы много разубедитет и т.д., а операции с потоками будут прекращены, даже если они находятся на полпути операция, например, фиксация db)

Ответ 2

Aiiieeeeeeeeeeee. Не делайте НИКАКИХ из этих вещей!

Правильный ответ - опубликовать WM_CLOSE.. Все, что использует стандартную процедуру окна, будет правильно уведомлять диспетчера окон, чтобы уничтожить окно, которое будет каскадироваться на WM_DESTROY, затем на WM_QUIT, как и предполагалось.

Если вам нужно другое поведение, чем стандартное закрытие, другой альтернативой является создание сообщения WM_USER или WM_APP. Если ваше окно имеет "причудливый" WM_CLOSE - скажем, например, вы даете пользователь запросит "Вы действительно хотите выйти?" - и вы хотите пропустить это, вы можете определить пользовательское сообщение с WM_USER или WM_APP и вызвать его на своем месте. Ваше сообщение, определяемое приложением, будет реализовывать поведение по умолчанию по умолчанию, а WM_CLOSE, связанный с системными гаджетами, выполняет ваше причудливое поведение.

Я надеюсь, что это поможет!

Ответ 3

PostQuitMessage() - стандартный, изящный способ выхода из оконного приложения.

Он не сразу уйдет, а скорее опубликует сообщение quit, которое будет проанализировано вашим основным циклом (если выполнено правильно), а затем закройте приложение.

Ответ 4

Если вы используете приложение Win32 с надлежащей процедурой окна, вы можете использовать функцию PostQuitMessage.

Ответ 5

Если вы работаете с визуальным С++, используйте:

Ответ 6

Просто вернитесь из функции WinMain. Если у вас есть цикл сообщений, используйте PostQuitMessage для выхода. Не пытайтесь выйти из процесса в середине выполнения; это неряшливо.