Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > Отключить работу с реестром в SDI приложении


Автор: Albor 25.9.2010, 11:37
При создании SDI-приложения, после первого запуска, в реестр пишется куча информации о данном приложении. Всё бы ничего, если бы это не мешало отладке программы. Например, я изменил текст одного из пунктов меню, или внёс изменения в Toolbar, запускаю приложение, а изменений не видно. Я удаляю из реестра создаваемую приложением ветвь и снова запускаю - изменения видны. Можно ли отключить работу с реестром в SDI приложении? Если просто закоментировать вызов SetRegistryKey() в InitInstance(), то приложение падает при запуске. 

Автор: Earnest 27.9.2010, 06:57
Тулбары записывают информацию в реестр, а вот насчет меню что-то не припомню. Вариантов 2: функция, записывающая изменения в реестр, называется что-то вроде SaveDockState, найди ее, проследи откуда вызывается (и LoadDockState, аналогично) и пресеки.
Второй вариант - посмотреть где падает, и соответственно подкрутить. Но первый вариант лучше, т.к. совсем отказываться от реестра неудобно. Тулбары фиг с ними, но есть и другая информация.

Автор: Albor 27.9.2010, 12:22
Цитата(Earnest @  27.9.2010,  06:57 Найти цитируемый пост)
Второй вариант - посмотреть где падает, и соответственно подкрутить. Но первый вариант лучше, т.к. совсем отказываться от реестра неудобно. Тулбары фиг с ними, но есть и другая информация. 

Это я просмотрел - это в "дебрях MFC" проверяется на NULL указатель на путь к ключу реестра. Поэтому в голову пришла идея просто по завершении программы удалять ветку реестра и следующий запуск будет как в первый раз smile

Автор: Earnest 27.9.2010, 14:34
Цитата(Albor @  27.9.2010,  13:22 Найти цитируемый пост)
Это я просмотрел - это в "дебрях MFC" проверяется на NULL указатель на путь к ключу реестра. 

Это понятно. Нужно посмотреть, откуда вызов. И соответственно подкрутить в своем классе - возможно, это будет фрейм, а может тулбар придется переопределить. Например у меня тулбары не пишутся в реестр, т.е пишутся, но не стандартно, так что изменить это дело точно можно. Но быстро посмотреть не могу, т.к. код там довольно навороченный, а времени сейчас нет. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)