2017-01-05 2 views
1

Я хочу онлайн обновить приложение C++ MFC. Я могу загрузить файл обновления с http, но проблема в том, что мне нужно перезаписать файл, который в настоящее время используется. Итак, можно ли запустить внешнее приложение из программы MFC (например, SFX-архив) после выхода программы?MFC - запускать внешнее приложение после выхода

+2

Большая коллекция реализаций для того, что вы в основном пытаются сделать следующее: [Самостоятельно удаление Исполняемые] (http://www.catch22.net/tuts/self-deleting- исполняемые файлы). – IInspectable

ответ

2

Посмотрите на функции atexit()

В функции вы обеспечиваете вы можете запустить процесс, который загружает файл.

E.g.

void launchDownload(void) 
{ 
    ShellExecute(...); 
} 

... 

atexit(launchDownload); 

Смотрите также ShellExecute

+0

void CUpmApp :: rtx() { } .... atexit (rtx); Вызывает ошибку: ошибка C3867: 'CUpmApp :: rtx': нестандартный синтаксис; используйте '&' для создания указателя на член –

+0

Ваша функция должна быть статичной, если вы хотите включить ее так, чтобы компоновщик нашел ее. например 'static void CUpmApp :: rtx() {] .. atexit (CUpmApp :: rtx);' –