start /wait /max iexplore.exe "C:\index.html"
copy C:\index.html c:\temp
Действие по закрытию приложения
Создание я сделал просто: определил отдельный модуль, в нем создал функцию, которую вызываю в WinMain перед
Application->Initialize() в файле Project1.cpp
вот с удалением проблемы...не соображу как в WinMain отловить сообщение wm_quit, а события типа TApplication::OnExit или чего-нибудь подобного я не нахожу...
Подскажите, пожалуйста. Заранее благодарен.
Цитата: Babandr
проблема в следующем. при запуске программы надо создать несколько объектов, при закрытии - уничтожить...эти объекты никак не должны быть связаны с главной формой приложения (впрочем, с другими окнами тоже) и поэтому создавать и уничтожать их в ее обработчиках, конструкторах или методах я не хочу.
Создание я сделал просто: определил отдельный модуль, в нем создал функцию, которую вызываю в WinMain перед
Application->Initialize() в файле Project1.cpp
вот с удалением проблемы...не соображу как в WinMain отловить сообщение wm_quit, а события типа TApplication::OnExit или чего-нибудь подобного я не нахожу...
Подскажите, пожалуйста. Заранее благодарен.
Создание я сделал просто: определил отдельный модуль, в нем создал функцию, которую вызываю в WinMain перед
Application->Initialize() в файле Project1.cpp
вот с удалением проблемы...не соображу как в WinMain отловить сообщение wm_quit, а события типа TApplication::OnExit или чего-нибудь подобного я не нахожу...
Подскажите, пожалуйста. Заранее благодарен.
1. ну если твои объекты не должны быть связаны с окном, то ты никак не поймаешь сообщения с префиксом WM_ - виндовс мессаже
2. просто удали их после Application->Run(); (можно продублировать в блоке catch)
Или пускай живут на стеке и умирают при выходе из области видимости или пускай удаляются в деструкторе объекта который за них отвечает. )
Цитата: aks
Автор вобще слышал про такие вещи в C++ как конструкторы или деструкторы? =))
Или пускай живут на стеке и умирают при выходе из области видимости или пускай удаляются в деструкторе объекта который за них отвечает. )
Или пускай живут на стеке и умирают при выходе из области видимости или пускай удаляются в деструкторе объекта который за них отвечает. )
Да, о конструкторах и деструкторах слышать приходилось...
Обсуждаемые объекты - что-то вроде глобальных переменных...
Объект, который за них отвечает - само приложение. Но как переопределить деструктор ТApplication(да и другие методы)?
Цитата: Babandr
Не, не работает...:(
Как ты это определил? Код в студию!
Цитата: Babandr
Обсуждаемые объекты - что-то вроде глобальных переменных...
У глобальный объектов деструктор вызывается при завершении программы. Хотя глобальными все же делать нехорошо их.
Как выполнить какие-либо действия по окончании работы программы, не привязываясь к OnFormDestroy, OnFormClose и т.п.?
- пишешь батник примерно такой...
Код:
т.е. запускаешь не саму программу, а батник, который ждет завершения ее работы...
а вот пример моей работы с моим-же глобальным обьектом, который ведет отладочные логи
Код:
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
Application->Initialize();
#ifdef debug_mode
STR_DEBUG=new TDebugInterceptor();
#endif
Application->CreateForm(__classid(TSDIAppForm), &SDIAppForm);
Application->Run();
#ifdef debug_mode
STR_DEBUG->CloseDebugInterceptor();
delete STR_DEBUG;
#endif
return 0;
}
{
Application->Initialize();
#ifdef debug_mode
STR_DEBUG=new TDebugInterceptor();
#endif
Application->CreateForm(__classid(TSDIAppForm), &SDIAppForm);
Application->Run();
#ifdef debug_mode
STR_DEBUG->CloseDebugInterceptor();
delete STR_DEBUG;
#endif
return 0;
}
а сам глобальный обьект - перехватчик обьявлен так:
Код:
extern __declspec(selectany)TDebugInterceptor * STR_DEBUG=NULL;
И все же я не понимаю вопроса. У тебя есть точка входа (функция main или другая если ее имя заменено в настройках проекта) в ней стоздаются объекты динамически или на стеке. Стековые удаляются сами по выходу из функции, динамические перед выходом из функции надо удалять вручную. Все остальные объекты соотвественно создаются в объектах созданных в main и в агрегированных в них объектах и так далее. Соответственно могут быть спокойно удаленны в их деструкторах. Наличие или остутствия GUI, цикла сообщений и т.п. на это вобще не влияет. Их может и не быть вовсе. ))
Цитата: aks
Все остальные объекты соотвественно создаются в объектах созданных в main и в агрегированных в них объектах и так далее. Соответственно могут быть спокойно удаленны в их деструкторах. Наличие или остутствия GUI, цикла сообщений и т.п. на это вобще не влияет. Их может и не быть вовсе. ))
Хорошо, буду пробовать. Спасибо за участие.