Как быстро выйти из SW - PullRequest
       15

Как быстро выйти из SW

0 голосов
/ 13 февраля 2009

У меня есть ПО, которое находится на внешнем жестком диске, оно будет запускаться автоматически при подключении пользователем внешнего жесткого диска, конечно, программное обеспечение должно закрываться автоматически, когда пользователь отключает внешний жесткий диск. Я могу получить сообщение об утерянном устройстве, однако мой SW не будет отвечать, пока все объекты не будут отпущены. Если я вызову exit (0) напрямую, SW покажет сообщение о сбое. Есть ли способ быстро выйти из SW?

Ответы [ 4 ]

1 голос
/ 13 февраля 2009

Чистый способ выхода из приложения Windows -

PostQuitMessage(0);

Это отправит WM_QUIT приложению, что приведет к прекращению цикла сообщений.

0 голосов
/ 16 февраля 2009

Я предполагаю, что вы ищете способ предотвратить сбой вашего приложения, когда пользователь отключает внешнее устройство. Вы можете заставить ОС скопировать ваш исполняемый файл с подвижного носителя в файл подкачки и выполнить его оттуда. Соответствующий переключатель компоновщика (для MSVC ++): / SWAPRUN: {NET | CD} .
Установите его на CD, и ОС скопирует исполняемый файл для замены при его запуске с внешнего диска.

0 голосов
/ 16 февраля 2009

Я предполагаю, что вы хотите выйти чисто. Если вам не нужно выходить чисто, используйте PostQuitMessage. Если это так, и это приложение с пользовательским интерфейсом, отправьте WM_CLOSE в главное окно.

Вы должны уточнить, на какие объекты ваше программное обеспечение "не будет реагировать во время", когда вы выходите, и почему оно перестает отвечать

0 голосов
/ 13 февраля 2009

Самый быстрый способ завершить процесс - вызвать TerminateProcess(). Это просто останавливает процесс от получения каких-либо дополнительных временных интервалов и освобождает все ресурсы, выделенные ему окнами.

Этот метод завершения процесса не рекомендуется, хотя по разным причинам. Например, если у вас есть открытый файл, в который вы пишете, используя стандартную библиотеку, некоторые данные все еще могут быть помещены в буфер и не полностью записаны в файл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...