Вывод дерева реестра (Visual C++) :shuffle:
От: Yncas http://yncas.narod.ru
Дата: 26.03.06 14:45
Оценка:
Здраствуйте! Помогите пожалуйста! Пишу программу на Visual C++6.0, которая должна выводить дерево реестра, что то вроде стандартного редактора реестра в WinXP, только в упрощённом виде. При выводе разделов происходит, что то для меня не понятное: в WinXP у меня получается вывести только подразделы раздела HKEY_CURRENT_CONFIG, при попытке вывести подразделы, "компик долго думает", а потом дспетчер задач убивает данный процесс. При запуске программы на выполнение в Win98 она выводит все кроме HKEY_CLASSES_ROOT и HKEY_CURRENT_USER. Если же пытаюсь вывести их, ПК опять как бы зацикливается, при попытке завершить процесс, выводит сообщение, что системе не хватает ресурсов.
Може структура TV_ITEM имеет ограничение по объёму хранимой в ней информации, и я её превышаю? Ключи открываю с полным доступом, памяти выделяю под каждое имя тоже прилично, проверял! Если кто нибудь знает или сталкивался с такой проблемой, подскажите, прошу.
Re: Вывод дерева реестра (Visual C++) :shuffle:
От: eklmn  
Дата: 26.03.06 20:32
Оценка:
Hello Yncas,

Y> имя тоже прилично, проверял! Если кто нибудь знает или сталкивался с

Y> такой проблемой, подскажите, прошу.

1. не хватает ресурсов — речь скорее всего о нехватке памяти.
2. если обход дерева делается рекурсивно, то, возможно, стек переполняется
(если ошибка в рекурсии и/или слишком много вложенных друг в друга веток).
3. памяти нужно выделять (имхо, в данном случае) не "прилично", а ровно
столько сколько нужно.
4. если ключ реестра не открывается, то скорее всего не хватает прав или,
например, ошибка в записях.
Posted via RSDN NNTP Server 2.0
Re: Вывод дерева реестра (Visual C++) :shuffle:
От: ekamaloff Великобритания  
Дата: 27.03.06 03:35
Оценка:
Здравствуйте, 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
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.