Такая тема:
Мое приложение (писано на Delphi 7 — но я подозреваю проблема не в нем а в Виндах) в процессе работы раз в несколько минут читает из реестра настройки для работы.
Приложение работает нормально очень долго — может сутки, может неделю, но рано или поздно возникает проблема что из реестра реальные данные прочитаться не могут — а читаются по умолчанию ( Помогает только перезагрузка компьютера.
Сталкивался ли кто с такой проблемой?
Заранее благодарен!
Re: Windows запрещает доступ к реестру :( [D7, WinXP]
Здравствуйте, jolik, Вы писали:
J>Такая тема: J>Мое приложение (писано на Delphi 7 — но я подозреваю проблема не в нем а в Виндах) в процессе работы раз в несколько минут читает из реестра настройки для работы. J>Приложение работает нормально очень долго — может сутки, может неделю, но рано или поздно возникает проблема что из реестра реальные данные прочитаться не могут — а читаются по умолчанию ( Помогает только перезагрузка компьютера. J>Сталкивался ли кто с такой проблемой? J>Заранее благодарен!
Я подозреваю, что у тебя текут открытые ключи реестра. Посмотри GetLastError.
Делай что должно, и будь что будет
Re[2]: Windows запрещает доступ к реестру :( [D7, WinXP]
Здравствуйте, SergH, Вы писали:
SH>Здравствуйте, jolik, Вы писали:
J>>Такая тема: J>>Мое приложение (писано на Delphi 7 — но я подозреваю проблема не в нем а в Виндах) в процессе работы раз в несколько минут читает из реестра настройки для работы. J>>Приложение работает нормально очень долго — может сутки, может неделю, но рано или поздно возникает проблема что из реестра реальные данные прочитаться не могут — а читаются по умолчанию ( Помогает только перезагрузка компьютера. J>>Сталкивался ли кто с такой проблемой? J>>Заранее благодарен!
SH>Я подозреваю, что у тебя текут открытые ключи реестра. Посмотри GetLastError.
А можно поподробнее — че это такое и с чем его едят. Можа УРЛ какой есть?
Спасибо!
Re[3]: Windows запрещает доступ к реестру :( [D7, WinXP]
On Tue, 11 Oct 2005 14:20:02 +0400, jolik <46798@users.rsdn.ru> wrote:
> Мое приложение (писано на Delphi 7 — но я подозреваю проблема не в нем а > в Виндах) в процессе работы раз в несколько минут читает из реестра > настройки для работы.
1. Можно привести минимальный код?
2. последите за числом хендлов в performance monitor. как сильно оно
меняется от момента после старта программы к моменту возникновения ошибки.
(иначе, есть ли утечка)
Здравствуйте, SergH, Вы писали:
SH>Здравствуйте, jolik, Вы писали:
J>>А можно поподробнее — че это такое и с чем его едят. Можа УРЛ какой есть?
SH>Можно.
SH>>>Я подозреваю, что у тебя текут открытые ключи реестра.
SH>Тут я имел ввиду, что ты открываешь ключи, но не закрываешь их. Обычно это называется "утечка".
SH>>> Посмотри GetLastError.
SH>А это я неправ, функции открытия ключей сами возврашяют код ошибки. Но, в любом случае, надо его посмотреть.
Понял. Посмотрю конечно — но думаю дело не в этом — ибо доступ к реестру создается в виде объекта Дельфи один раз при запуске програмы и удаляется тоже один раз при выходе из программы — думаю там (в деструкторе и в конструкторе) все эти дела и делаются. А при чтении используется уже созданный объект.
В любом случае — спасибо!
Можа еще какие мысли есть ?
Re[5]: Windows запрещает доступ к реестру :( [D7, WinXP]
Здравствуйте, jolik, Вы писали:
J>Понял. Посмотрю конечно — но думаю дело не в этом — ибо доступ к реестру создается в виде объекта Дельфи один раз при запуске програмы и удаляется тоже один раз при выходе из программы — думаю там (в деструкторе и в конструкторе) все эти дела и делаются. А при чтении используется уже созданный объект. J>В любом случае — спасибо! J>Можа еще какие мысли есть ?
На всякий случай попробуй создавать объект именно там, где надо.
Да, если тебе нужно только читать настройки — создавай через конструктор, который понимает параметр "Access".
И еще одно — когда читаешь данные ты их открываешь через OpenKey — не забывай закрывать через CloseKey...
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Если при компиляции и исполнении вашей программы не происходит ни одной ошибки — это ошибка компилятора :)))