Оцените библиотеку для работы с реестром

Тема в разделе "LANGS.C", создана пользователем _DEN_, 9 май 2009.

  1. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    Задача: написать на C++ лучшую в мире библиотеку для работы с виндовым реестром.

    Что получилось:

    1. Одинакого доступна и ANSI и UNICODE версия.

    2. Библиотека выполнена в максимально приближенной к STL семантике. Семантика STL-контейнеров и итераторов.

    3. Вся реализация скрыта в pimpl-ах, Windows.h наружу не торчит.


    Пример использования:

    http://www.everfall.com/paste/id.php?0spuxh1fuujc


    Сейчас думаю над тем, как лучше сделать итерирование значений и их удаление.
     
  2. TSS

    TSS New Member

    Публикаций:
    0
    Регистрация:
    13 апр 2009
    Сообщения:
    494
    Выглядит неплохо, исключения само собой предусмотрены в библиотеке?
     
  3. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    TSS

    Пока что обработка ошибок не сделана, но обязательно будет. Скорее всего ошибка на уровне апи будет плеваться объектом boost::system::system_error - мне кажется это наиболее кошерный вариант.
     
  4. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    Добавлено итерирование и удаление значений. Ссылка та же.

    Либа собирается с нулем варнингов на 4-м уровне ахтунгирования.
     
  5. Velheart

    Velheart New Member

    Публикаций:
    0
    Регистрация:
    2 июн 2008
    Сообщения:
    526
    Так это.. а я смогу ее юзать работая "на дядю" ? =) Ну т.е. типа как там с лицензией и т.д., и когда будут исходники? Выглядит очень симпатично, прикольно, что раньше никто не придумал ничего такого..
     
  6. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    Velheart

    Либа написана для коммерческого проекта, поэтому пока что не ясно, можно ли вообще будет выложить сорцы в паблик.
     
  7. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    _DEN_
    Тогда смысл этого постинга? И я предпочитаю реестру конфиги, хотя идея неплоха.
     
  8. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    _DEN_
    Захват методов в хидерах используете(OBJECT_TYPE.ParseProcedure etc.) ?
     
  9. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    Booster

    Смысл этого постинга в том, чтобы показать внешний интерфейс библиотеки, чтобы о нем можно было высказать какое-то мнение.
     
  10. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    Clerk

    Эммм... Не совсем понял что это и как относится к реестру.
     
  11. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    А что вы с реестром делаете, там по ссылке какаято ерунда, как мне это компилить и что с этим делать. Я так понимаю там должна быть гибкая низкоуровневая работа с реестром, беспалевный захват в первую очередь.
     
  12. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    _DEN_
    Если идёт прицел на стандартный интерфейс, то имхо и работу с параметрами имеет смысл сделать однотипно, например ассоциативным контейнером. Например вместо - division.query<key::multi_string> имхо красивее был-бы оператор [].

    Ну и это явно нужно перенести в библиотеку:
    #typedef registry::basic_key<char> key;
    #typedef registry::basic_key<wchar_t> wkey;
     
  13. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    Booster

    Огласите весь список пожалуйста. На счет оператора - как ты себе представляешь обращение через operator [] когда нужно указывать тип?


    Это и так в библиотеке. Вытащил наружу для наглядности.
     
  14. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    operator []<Type>(key) не нравится?
     
  15. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    Booster

    Эта конструкция не скомпилируется. Приведи конкретный компилируемый пример, как ты это видишь.
     
  16. Ustus

    Ustus New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2005
    Сообщения:
    834
    Адрес:
    Харьков
    _DEN_
    Код (Text):
    1. x.operator[]<Type>(key)
    Тока так :)
     
  17. Ustus

    Ustus New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2005
    Сообщения:
    834
    Адрес:
    Харьков
    Намного красивее.
    :lol: :lol: :lol:
     
  18. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Это конечно вопрос спорный, так как автовывод тоже имеет имеет право на жизнь. Но set/query тоже немного странно. Может тогда сделать полный комплект - operator [], get/set?
    Где get тоже с автовыводом.
     
  19. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    И get как-то привычнее, query бд напоминает.
     
  20. G13

    G13 New Member

    Публикаций:
    0
    Регистрация:
    24 мар 2006
    Сообщения:
    499
    <offtop>
    Clerk, о чём вы? Это .LANG.C, а не .OS.KERNEL 8)

    Насколько можно судить из поста, это просто сиприплюснутая обёртка для advapi. Красиво. Но не более того. Да и обработка ошибок под вопросом.
    </offtop>


    А LGPL не спасёт отца русской демократии?