crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

3 страниц V   1 2 3 >  
Ответить в данную темуНачать новую тему
sblblx
  опции профиля:
сообщение 7.9.2010, 8:17
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 27
Регистрация: 5.9.2010
Пользователь №: 2011

Спасибо сказали: 0 раз(а)




Репутация:   0  


Хочу получить доступ к реестру винды из-под линукса. Qt for linux. Под лин есть библиотека, написанная на С (ntreg). Возможно ли ее прикуруить к проекту кути? Есть так же готовый класс для доступа к реестру, но под винду(JuliRegApi). Подскажите пожалуйста чайнику как быть и куда копать?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 7.9.2010, 8:24
Сообщение #2


фрилансер
******

Группа: Участник
Сообщений: 2943
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


можно обернуть сишную "рассыпуху" в
extern "C"
{
   //тут код C
  //или даже инклуд с C кодом 
}


затем как обычно подключить заголовок к проекту. Должно прокатить

Сообщение отредактировал Алексей1153 - 7.9.2010, 8:25
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
sblblx
  опции профиля:
сообщение 7.9.2010, 9:17
Сообщение #3


Студент
*

Группа: Участник
Сообщений: 27
Регистрация: 5.9.2010
Пользователь №: 2011

Спасибо сказали: 0 раз(а)




Репутация:   0  


Спасибо большое за подсказку! Вечерком попробую:)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
maint
  опции профиля:
сообщение 7.9.2010, 9:35
Сообщение #4


Участник
**

Группа: Участник
Сообщений: 235
Регистрация: 3.8.2009
Из: Иркутск
Пользователь №: 982

Спасибо сказали: 28 раз(а)




Репутация:   2  


Цитата(sblblx @ 7.9.2010, 14:17) *
Хочу получить доступ к реестру винды из-под линукса. Qt for linux. Под лин есть библиотека, написанная на С (ntreg). Возможно ли ее прикуруить к проекту кути? Есть так же готовый класс для доступа к реестру, но под винду(JuliRegApi). Подскажите пожалуйста чайнику как быть и куда копать?

вопросик, а где можно надыбать это чудо ? В сысле взять ;)

Сообщение отредактировал maint - 7.9.2010, 9:35
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 7.9.2010, 9:59
Сообщение #5


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(sblblx @ 7.9.2010, 12:17) *
но под винду(JuliRegApi)
этот класс будет работать только на виндовозе.

Цитата(maint @ 7.9.2010, 13:35) *
вопросик, а где можно надыбать это чудо ?
JulyRegApi
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
sblblx
  опции профиля:
сообщение 7.9.2010, 10:16
Сообщение #6


Студент
*

Группа: Участник
Сообщений: 27
Регистрация: 5.9.2010
Пользователь №: 2011

Спасибо сказали: 0 раз(а)




Репутация:   0  


Если вопрос про линуксовую библиотеку, то дернуть ее можно из исходников chntpw;) Прога консольная для редактирования реестра из под линукса.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
sblblx
  опции профиля:
сообщение 7.9.2010, 13:42
Сообщение #7


Студент
*

Группа: Участник
Сообщений: 27
Регистрация: 5.9.2010
Пользователь №: 2011

Спасибо сказали: 0 раз(а)




Репутация:   0  


Повторюсь: на C написана библиотека(в некоторых источниках ее еще называют драйвером :blink: ). Возможно я что-то делаю не так, но :extern "C" {код}: приводит к тем-же ошибкам, когда я тупо код Сишный воткнул в проект...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kuzulis
  опции профиля:
сообщение 7.9.2010, 14:01
Сообщение #8


Активный участник
***

Группа: Участник
Сообщений: 393
Регистрация: 29.6.2009
Пользователь №: 862

Спасибо сказали: 36 раз(а)




Репутация:   7  


А попробуй в твоем *.cpp файле в котором собираешься использовать сишные функции сделать так:

#include <QtCore> //тут какие -то инклюды (неважно)

extern "C" {
#include <заголовочник твоей сишной либы>
}


....
....

//тут собственно реализация твоих классов

void YourClass::Method1(void)
{
    //тут используешт сишную функцию из сишной либы
    cFunction();
}

.....
....


И не забудь либу подключить в *.pro, если ты ее не собираешь из сырцов.

Сообщение отредактировал kuzulis - 7.9.2010, 14:02
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
sblblx
  опции профиля:
сообщение 7.9.2010, 14:23
Сообщение #9


Студент
*

Группа: Участник
Сообщений: 27
Регистрация: 5.9.2010
Пользователь №: 2011

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата
И не забудь либу подключить в *.pro, если ты ее не собираешь из сырцов.


Все в исходниках, естественно :rolleyes: Сейчас попробую

Цитата(sblblx @ 7.9.2010, 15:10) *
Цитата
И не забудь либу подключить в *.pro, если ты ее не собираешь из сырцов.


Все в исходниках, естественно :rolleyes: Сейчас попробую

Те же ошибки... 8) Ругается на некорректное преобразование из void, некорректное использование void... В общем ругается...

Может исходники кривые? :unsure:
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kuzulis
  опции профиля:
сообщение 7.9.2010, 14:41
Сообщение #10


Активный участник
***

Группа: Участник
Сообщений: 393
Регистрация: 29.6.2009
Пользователь №: 862

Спасибо сказали: 36 раз(а)




Репутация:   7  


А посмотри ка в *.h исходников библиотеки, есть ли там в них конструкция типа:
Цитата
#ifdef __cplusplus
extern "C" {
#endif

//тут должны быть декларированы "паблик" функции этой сишной либы
...

...
#ifdef __cplusplus
}
#endif


Если этой конструкции в заголовках либы нету - то попробуй ее нарисовать. И тогда в твоем *.cpp файле не нужно будет писать extern "C" и т.п.

Цитата
Может исходники кривые? :unsure:

Хз, все может быть. Покажи вывод ошибок.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

3 страниц V   1 2 3 >
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 17.6.2025, 9:58