Рейтинг:
1
#realJSOP
Я бы использовал XML-файлы. Ознакомьтесь с этой статьей. Я написал его для C++/MFC, но вы должны быть в состоянии адаптировать его к Borland C++ достаточно легко.
Класс профиля XML-приложения[^]
Sergey Alexandrovich Kryukov
Гораздо лучший выбор. Мой 5.
--СА
CPallini
Кстати, предложенная Джоном статья не будет работать без реестра...:-D
Sergey Alexandrovich Kryukov
Неужели?! Ну, это, конечно, делает Аргументы Джона не столь убедительными, но тем не менее его идея хороша. Реестр должен умереть (может быть, и нет, но ограничивается общесистемными настройками)!
Раньше я предлагал другой вариант, который для меня принципиально важен: контракт на передачу данных. (И, разумеется, никакого отношения к регистратуре. :-) Жаль, что я не могу сослаться на него здесь: это для .Только сеть.
Кстати, во многих местах документации .NET Microsoft официально рекомендует отказаться от установки и разрабатывать продукты, которые устанавливаются просто копией (xcopy или что-то еще). Я понимаю, что вы не очень заинтересованы в рекомендациях. Я тоже; я больше полагаюсь на собственную голову.
Спасибо.
--СА
#realJSOP
Смотрите мой ответ Генри. Использование реестра, о котором он говорит, связано с тем, что я использую COM-библиотеку DLL, предоставленную Microsoft. Я не нарушаю своего правила хранения чего-либо в реестре из моих собственных приложений.
Sergey Alexandrovich Kryukov
Спасибо за объяснение. По основному вопросу об использовании реестра я уже поддержал вас.
--СА
CPallini
Извини, я должен был тебе это сказать. Я полагал, что СА знал об этом.
CPallini
Установка голой копией выглядит привлекательной идеей.
Sergey Alexandrovich Kryukov
Мне нравится, если больше всего, особенно нравится пользователь. Когда у меня есть тесно конкурирующий выбор, я предпочитаю не устанавливать. В конце концов, у меня есть лучшие личные методы поддержания моего приложения организованным.
Но я также вижу (и разрабатываю) более реалистичный вариант: не установки, а с деинсталляцией/очисткой. Почему? Некоторые коды все равно загрязняют реестр (или что-то еще). При копировании продукт начинает работать и "устанавливается" сам (но на самом деле просто оставляет след; опции и т. д.) Вы использовали его и в конечном итоге хотите удалить. Просто запустите его как обычное приложение, нажмите пункт меню "Удалить" - он очистит все следы и завершит работу.
Это работает даже с Windows. Он может быть запущен как приложение и самостоятельно установить себя как сервис. В конце концов вы хотите отменить регистрацию службы, удаление каталога недостаточно-требуется процедура удаления. Я недавно разработал такую систему. Каждая сборка может реализовать какой-то специальный интерфейс для ununstallation. Утилита деинсталляции просто загружает все сборки без исключения. Если этот интерфейс реализован и проявляется через специальный атрибут сборки (найденный отражением) -- вызывает метод unistallation. Сделано.
--СА
#realJSOP
Но это не потому, что я в нем что-то храню. Это из-за Microsoft COM DLL, которую он использует, и я никогда ничего не говорил об ОС, использующей реестр, я сказал, что не храню в нем данные.
Sergey Alexandrovich Kryukov
Идеальный. Это значит, что мы согласны использовать реестр.
Спасибо за записку.
--СА
CPallini
Да, реестр-это один из фундаментальных механизмов, поддерживающих COM. Я не храню свои общие "данные" внутри реестра, я использую их для (некоторых) настроек приложений.
Рейтинг:
0
CPallini
Вы можете читать/писать INI
файлы, использующие Windows API
такие функции, как WritePrivateProfileString
.
Вы можете найти такие функции, перечисленные в нижней части страницы эта страница MSDN[^].
Как отмечается на странице документации:
Эти функции предоставляются только для совместимости с 16-разрядными версиями Windows. Новые приложения должны использовать реестр.
#realJSOP
Конечно, ни один программист в здравом уме не будет намеренно использовать реестр. Я знаю, что избегаю этого, как чумы.
CPallini
На мой взгляд, структура реестра (дерево) намного лучше, чем INI-файлы.
Hans Dietrich
Похоже, это происходит циклично. Во-первых, у нас были INI-файлы. Тогда это было плохо (за МС), мы должны использовать реестр. Потом с ним .NET нам говорят использовать конфигурационные файлы (они же INI-файлы). Я полагаю, что следующим будет облако. :)
#realJSOP
Для меня это никогда не было циклом. Посмотрите, что у нас есть прямо сейчас. Vista/Weven даже не позволит вам писать в реестр без соответствующих разрешений. Это по своей сути ломает почти все приложения, которые делали это в прошлом. У меня никогда не было причин или не было оправдания для общего использования реестра для хранения данных.
CPallini
Реестр является центральным хранилищем для хранения настроек приложения (а не общих данных). Конечно, у него есть недостатки, но есть и определенные преимущества (например, древовидная структура).
#realJSOP
Я отказываюсь использовать его для чего-либо. Я отношусь к нему как к "Гото".
Sergey Alexandrovich Kryukov
Джон, ты абсолютно прав. Это была ошибка Microsoft, теперь признал мой Microsoft people. Дело в том, что я никогда не следовал этой ошибке, как и Джон. Моя собственная голова для меня важнее. Мне также удалось пропустить несколько технологий, которые считались модными, но позже никуда не делись. Критическое мышление действительно помогает.
--СА
CPallini
Итак, что я могу сказать? Джон ( и Сак ), пожалуйста, реестра, Гото ! :-D
Sergey Alexandrovich Kryukov
Джонс прав. Цикл-это когда вы с завязанными глазами следуете за трендом. Это плохо.
Наконец, люди Microsoft признали, что реестр плох.
Стиль, поощряемый разработкой .NET, сдвигает вещи в правильном направлении.
Даже установка xcopy-stype поощряется (лучший тип установки для меня).
--СА
CPallini
Когда люди из Microsoft признали, что реестр плохой (это не имеет для меня никакого значения)?
Sergey Alexandrovich Kryukov
Извините, я прочитал какую - то статью, не заложил их в закладки. Поскольку вы не очень заинтересованы в доказательстве ссылки, я надеюсь, что вы простите меня.
--СА
CPallini
Конечно, я доверяю вам и не собираюсь вести религиозную войну из-за регистратуры. :-)
Sergey Alexandrovich Kryukov
Спасибо.
Kurt Degiorgio
реестр лучше но для простых конфигураций его больше стоит использовать INI файлы чем реестр
Sergey Alexandrovich Kryukov
Просто не значит лучше.
Реестр просто загрязнен слишком большим количеством игроков. Не добавляйте к этому!
--СА