Здраствуйте! Помогите пожалуйста! Пишу программу на Visual C++6.0, которая должна выводить дерево реестра, что то вроде стандартного редактора реестра в WinXP, только в упрощённом виде. При выводе разделов происходит, что то для меня не понятное: в WinXP у меня получается вывести только подразделы раздела HKEY_CURRENT_CONFIG, при попытке вывести подразделы, "компик долго думает", а потом дспетчер задач убивает данный процесс. При запуске программы на выполнение в Win98 она выводит все кроме HKEY_CLASSES_ROOT и HKEY_CURRENT_USER. Если же пытаюсь вывести их, ПК опять как бы зацикливается, при попытке завершить процесс, выводит сообщение, что системе не хватает ресурсов.
Може структура TV_ITEM имеет ограничение по объёму хранимой в ней информации, и я её превышаю? Ключи открываю с полным доступом, памяти выделяю под каждое имя тоже прилично, проверял! Если кто нибудь знает или сталкивался с такой проблемой, подскажите, прошу.
Hello Yncas,
Y> имя тоже прилично, проверял! Если кто нибудь знает или сталкивался с
Y> такой проблемой, подскажите, прошу.
1. не хватает ресурсов — речь скорее всего о нехватке памяти.
2. если обход дерева делается рекурсивно, то, возможно, стек переполняется
(если ошибка в рекурсии и/или слишком много вложенных друг в друга веток).
3. памяти нужно выделять (имхо, в данном случае) не "прилично", а ровно
столько сколько нужно.
4. если ключ реестра не открывается, то скорее всего не хватает прав или,
например, ошибка в записях.
Posted via RSDN NNTP Server 2.0
Здравствуйте, Yncas, Вы писали:
Y> Здраствуйте! Помогите пожалуйста! Пишу программу на Visual C++6.0, которая должна выводить дерево реестра, что то вроде стандартного редактора реестра в WinXP, только в упрощённом виде. При выводе разделов происходит, что то для меня не понятное: в WinXP у меня получается вывести только подразделы раздела HKEY_CURRENT_CONFIG, при попытке вывести подразделы, "компик долго думает", а потом дспетчер задач убивает данный процесс. При запуске программы на выполнение в Win98 она выводит все кроме HKEY_CLASSES_ROOT и HKEY_CURRENT_USER. Если же пытаюсь вывести их, ПК опять как бы зацикливается, при попытке завершить процесс, выводит сообщение, что системе не хватает ресурсов.
Y>Може структура TV_ITEM имеет ограничение по объёму хранимой в ней информации, и я её превышаю? Ключи открываю с полным доступом, памяти выделяю под каждое имя тоже прилично, проверял! Если кто нибудь знает или сталкивался с такой проблемой, подскажите, прошу.
Попробуй использовать "виртуальный" режим работы tree view, т.е. узлы добавлять только при разворачивании узла (уведомление TVN_ITEMEXPANDING), при сворачивании удалять. См.
здесьАвтор: Forgotten
Дата: 27.12.05
It is always bad to give advices, but you will be never forgiven for a good one.
Oscar Wilde