logo
logo

Форум Падение сразу после запуска

создать новую тему раскрыть все
Падение сразу после запуска AleS 27/08/2003 19:09 #написать ответ
Cash 1.4 build 1026
Сегодня столкнулся с такой ситуацией. Windows 2000 Server (на ноутбуке установлена) вылетела в синий экран (Cash в это время был запущен). Почему вылетела - неясно, но не в этом суть. После перезагрузки, при попытке запуска Cash вылетала сразу после проверки базы данных. Как говорится, без шуму и пыли. Сообщения какие-нибудь если и появлялись, то заметить их я не успел. Несколько одинаково неудачных попыток стартовать Cash вынудили заняться поисками если не причины, то хотя бы способа таки запустить программу и внести расходы. Попытки переселить Cash в другую директорию и даже на другой диск (простым копированием PersonalCash) ни к чему не привели. Как и удаление баз данных в директории запуска и попытки создать новые - в этом случае программа вылетала сразу после нажатия на кнопку "Создать". Единственно, что было замечено, это то, что после переезда программы на другой диск, при попытке создания новой базы, перед вылетом на короткое время возникло стандартное виндовое сообщение о том, что диск Z: недоступен (через диск Z: я дома скидывал инфу из Cash с ноутбука на домашний компьютер, при работе вне дома диска такого у меня нет). С помощью subst диск Z: я сделал, но это не помогло - сообщение больше не появлялось, программа вылетала как и раньше. В общем, через некоторое время выяснилось, что если убрать ini-файл из директории первоначальной инсталляции, программа начинает запускаться и работает вроде нормально. Так что, пишется что-то такое в ini, что может уронить программу. Да, чуть не забыл: после того, как убрал ini-файл, первый запуск сделал не из родной директории программы, а из переселенной на другой диск. И при нажатии на кнопку "Создать" (баз данных в этой директории не было) появился диалог открытия/сохоанения файла и указывал он именно на диск Z:
 
Dervish: Думаю, что действительно что-то такое в ini прописалось, что приводило (после чтения) к краху программы. Было бы очень интересно взглянуть на этот ini-файл, если он сохранился. Впрочем, я не делал специальных проверок данных, которые читаются из ini-файла, понадеялся, что этот файл будет корректным.
 
А про то, что диалог сохранения указывал по умолчанию на диск Z:, это особенности самой Windows, она, если не ошибаюсь, сохраняяет где-то адрес папки, к которой в последний раз происходило обращение в диалогах "Open File" и "Save As".
А вот мое предложение (+) _Andrey_ 28/09/2003 17:38 #написать ответ
На мой взгляд, стоит еще проверять значение ключа HKEY_LOCAL_MACHINESOFTWAREAbilityCashCashPath и если ключ пуст, или его нет вообще, то прописывать каталог запуска программы (не текущий каталог).
А еще лучше в реестр вообще ничего не писать, а все действия проводить относительно каталога запуска программы (думаю не нужно объяснять, как извлечь каталог запуска?).
 
Dervish: Здесь, в форуме, было довольно бурное обсуждение на предмет того, где и как хранить настройки. В конечном итоге, пришли к выводу, что лучше всего - в реестре.
 
Андрей, скажите честно, у вас есть сомнения в моей профессиональной пригодности? Чтож вы мне всё время хотите рассказать про азбучные истины: то о том, как манифест добавить в проект, а то про каталог запуска программы...