Обратите внимание, что если вы используете глобальные переменные, вы должны проверить, нужно ли их очищать. Если это так, у вас должен быть метод CleanUp вашего модуля и вызывать его во время события выгрузки основной формы. Еще одна проблема - иногда ORDER того, как вы разгружаете вещи, важен. Выполняя явную очистку, вы можете это контролировать.
В VB6 вам редко следует использовать END. Если у вас есть круговые ссылки, программа останется как процесс, пережевывающий ресурс, вызывающий различные странные ошибки, когда вы снова запускаете его. С COM-объектами очень легко непреднамеренно настроить цепочку объектов, которая является циклически связанной.
End существует как удержание совместимости с предыдущей версией QuickBASIC и Visual BASIC. Это не вызвало серьезных проблем, пока VB 4.X не представила возможность создавать классы. Это начало привлекать внимание в 5.X.
До этого один из способов сделать это в VB 3.X состоит в том, чтобы две формы задавали ссылки друг на друга.
OK, принимая это, отвечая на вопрос. Можете ли вы сказать мне, что если End выгрузит все модули, даже если заявить, что форма все еще загружена? – kjack
Нет, End не выгружает модули. Жаль, что у MS даже есть оператор End. Скорее всего, он оставит незагруженные формы в памяти, создав утечку памяти. – HardCode
Гаркод ошибочен. Оператор End выгружает все формы, объекты и т. Д. Но Конец считается большинством программистов VB6 «Зло». Он не запускает события Unload или QueryUnload или Terminate форм или модулей классов. Справка VB говорит, что он не должен использоваться для нормального завершения программы VB. – MarkJ