Russian Qt Forum

Qt => Общие вопросы => Тема начата: Hvzh от Декабрь 17, 2010, 10:38



Название: Qt и Windows Registry
Отправлено: 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)

Никто не подскажет, что у меня не прикручено? Под виндой редко программлю, прсто тут нужда возникла...


Название: Re: Qt и Windows Registry
Отправлено: Пантер от Декабрь 17, 2010, 10:40
Используй QSettings.


Название: Re: Qt и Windows Registry
Отправлено: Hvzh от Декабрь 17, 2010, 10:51
То есть, если мне нужно считать имеющиеся на компе COM-порты, то я могу использовать что-то вроде
Код:
QSettings settings("HKEY_LOCAL_MASHINE\\HARDWARE\\DEVICEMAP", "SERIALCOMM");
и так далее?
Только вот проблема в том, что заранее неизвестно количество вхождений в эту ветку(количество СОМ-портов и их имена :( )


Название: Re: Qt и Windows Registry
Отправлено: Hvzh от Декабрь 17, 2010, 11:05
Решилось добавлением Advapi32.dll, но как же не хотелось завязываться на мелкософтовские библиотеки...


Название: Re: Qt и Windows Registry
Отправлено: Пантер от Декабрь 17, 2010, 11:08
Читай в ассистенте про QSettings.
QSettings::childGroups ()
QSettings::childKeys ()


Название: Re: Qt и Windows Registry
Отправлено: Alex Custov от Декабрь 17, 2010, 12:58
Решилось добавлением Advapi32.dll, но как же не хотелось завязываться на мелкософтовские библиотеки...

А как можно писать на WIN32 API не используя библиотек? Правильно, никак.


Название: Re: Qt и Windows Registry
Отправлено: tim474 от Декабрь 17, 2010, 17:42
То есть, если мне нужно считать имеющиеся на компе COM-порты, то я могу использовать что-то вроде
Код:
QSettings settings("HKEY_LOCAL_MASHINE\\HARDWARE\\DEVICEMAP", "SERIALCOMM");
и так далее?
Только вот проблема в том, что заранее неизвестно количество вхождений в эту ветку(количество СОМ-портов и их имена :( )
Для кроссплатформенной работы COM-портами вроде же специально разрабатывали дополнительные компоненты.