Russian Qt Forum
Ноябрь 02, 2024, 20:17 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Qt и Windows Registry  (Прочитано 4033 раз)
Hvzh
Гость
« : Декабрь 17, 2010, 10:38 »

Добрый день! Столкнулся со следующей проблемой: в Qt-проге под виндой нужно прочитать реестр. Прога разрабатывается в QtCreator'е, компилятор MSVS 9.0. При линковке выдает ошибки:
Код:
terminalsetup.obj : error LNK2019: unresolved external symbol __imp__RegCloseKey@4 referenced in function "public: bool __thiscall CVsRegistry::GetValue(class std::map<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct std::less<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >,class std::allocator<struct std::pair<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const ,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > > > > &,char const *,char const *,char const *,char const *,char const *,char const *)" (?GetValue@CVsRegistry@@QAE_NAAV?$map@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V12@U?$less@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@V?$allocator@U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V12@@std@@@2@@std@@PBD11111@Z)

Никто не подскажет, что у меня не прикручено? Под виндой редко программлю, прсто тут нужда возникла...
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #1 : Декабрь 17, 2010, 10:40 »

Используй QSettings.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Hvzh
Гость
« Ответ #2 : Декабрь 17, 2010, 10:51 »

То есть, если мне нужно считать имеющиеся на компе COM-порты, то я могу использовать что-то вроде
Код:
QSettings settings("HKEY_LOCAL_MASHINE\\HARDWARE\\DEVICEMAP", "SERIALCOMM");
и так далее?
Только вот проблема в том, что заранее неизвестно количество вхождений в эту ветку(количество СОМ-портов и их имена Грустный )
« Последнее редактирование: Декабрь 17, 2010, 10:54 от Hvzh » Записан
Hvzh
Гость
« Ответ #3 : Декабрь 17, 2010, 11:05 »

Решилось добавлением Advapi32.dll, но как же не хотелось завязываться на мелкософтовские библиотеки...
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #4 : Декабрь 17, 2010, 11:08 »

Читай в ассистенте про QSettings.
QSettings::childGroups ()
QSettings::childKeys ()
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #5 : Декабрь 17, 2010, 12:58 »

Решилось добавлением Advapi32.dll, но как же не хотелось завязываться на мелкософтовские библиотеки...

А как можно писать на WIN32 API не используя библиотек? Правильно, никак.
Записан
tim474
Гость
« Ответ #6 : Декабрь 17, 2010, 17:42 »

То есть, если мне нужно считать имеющиеся на компе COM-порты, то я могу использовать что-то вроде
Код:
QSettings settings("HKEY_LOCAL_MASHINE\\HARDWARE\\DEVICEMAP", "SERIALCOMM");
и так далее?
Только вот проблема в том, что заранее неизвестно количество вхождений в эту ветку(количество СОМ-портов и их имена Грустный )
Для кроссплатформенной работы COM-портами вроде же специально разрабатывали дополнительные компоненты.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.158 секунд. Запросов: 23.