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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Не получается использовать QtService  (Прочитано 13627 раз)
wyvern
Гость
« : Март 20, 2009, 11:07 »

привет!

я работаю с QT 4.4.3 и msvs2005

пытаюсь написать сервис. скачал для этого qtservice-2.5-commercial и пытаюсь его использовать следующим образом

папка src содержит следующие файлы:

QtService
QtServiceBase
QtServiceController
qtservice.pri
qtservice.cpp
qtservice.h
qtservice_p.h
qtservice_unix.cpp
qtservice_win.cpp
qtunixserversocket.cpp
qtunixserversocket.h
qtunixsocket.cpp
qtunixsocket.h

я решил разместить их в %QTDIR% по аналогии с имеющимися там файлами, т.е.:

1) создал в %QTDIR%\src папку qtservice
2) скопировал в %QTDIR%\src\qtservice файлы:

qtservice.pri
qtservice.cpp
qtservice.h
qtservice_p.h
qtservice_unix.cpp
qtservice_win.cpp
qtunixserversocket.cpp
qtunixserversocket.h
qtunixsocket.cpp
qtunixsocket.h

3) скопировал в %QTDIR%\include\QtCore файлы:

QtService
QtServiceBase
QtServiceController

4) создал в %QTDIR%\include\QtCore файл qtservice.h, содержащий текст:

#include "../../src/qtservice/qtservice.h"

создал тестовый проект:

service.h

Код
C++ (Qt)
#ifndef SERVICE_H
#define SERVICE_H
 
#include <QtService>
 
class service : public QtService<QCoreApplication>
{
public:
service (int argc, char **argv);
protected:
void start();
void pause();
void resume();
};
 
#endif // SERVICE_H

service.cpp

Код
C++ (Qt)
#include "service.h"
 
service ::service (int argc, char **argv)
: QtService<QCoreApplication>(argc, argv, "Service")
{
}
 
void service ::start()
{
}
 
void service ::pause()
{
}
 
void service ::resume()
{
}

main.cpp

Код
C++ (Qt)
#include "service.h"
 
int main(int argc, char *argv[])
{
service s(argc, argv);
 
return s.exec();
}

при линковке проекта вылезает куча ошибок LNK2019 и LNK2001

возможно, недостает библиотеки для qtservice или чего-то еще
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #1 : Март 20, 2009, 18:19 »

я ничего никуда не копировал, собрал пример из комплекта и все работает, dll'ки там не создаются, это небольшие файлы, которые просто прицепляются к твоему приложению.
Записан

Юра.
wyvern
Гость
« Ответ #2 : Март 27, 2009, 17:33 »

спасибо

включил все *.h и *.c файлы из поставки в состав проекта, и все заработало

проблема решена
« Последнее редактирование: Март 27, 2009, 17:35 от wyvern » Записан
bigory
Гость
« Ответ #3 : Ноябрь 03, 2010, 18:08 »

Поделитесь же, тоже вот скачал и мучаюсь. Куда и че пихать та?
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #4 : Ноябрь 03, 2010, 21:15 »

bigory, примеры компилировал? разбирался с ними?
Записан

Юра.
bigory
Гость
« Ответ #5 : Ноябрь 03, 2010, 22:28 »

Примеры в папке qtservice-2.6\... компиляться, а вот если применять эти библиотеки там, где все остальные примеры, то жалуется на отсутствия описаний. Примеры разобрать пробовал, ничего не понял
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #6 : Ноябрь 04, 2010, 08:24 »

Примеры в папке qtservice-2.6\... компиляться, а вот если применять эти библиотеки там, где все остальные примеры, то жалуется на отсутствия описаний.
Ничего не понял, какие "все остальные"?
Все примеры этого решения лежат в каталоге examples, ни каких других примеров нет.
Записан

Юра.
bigory
Гость
« Ответ #7 : Ноябрь 04, 2010, 11:55 »

Если скачать и установить Qt Creator, в каталоге установленного будет папка с примерами. Мне понадобилось еще скачать qtservice-2.6, там тоже есть некоторые примеры для работы с qtservice. Вот откуда тут 2 папки examples.
Так вот в каталоге qtservice-2.6\examples примеры компиляться если использовать qtservice, а вот в каталоге установленного Qt Creator(а) в папке examples, если применить библиотеки qtservice, то не компиляться.
Я не знаю как еще подробнее это описать
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #8 : Ноябрь 04, 2010, 21:15 »

>>Если скачать и установить Qt Creator
причём здесь креатор?
Если мы говорим о конкретной библиотеки, то о ней и говорим.
Давайте всё-таки разделять - мухи отдельно, котлеты отдельно.

>>Так вот в каталоге qtservice-2.6\examples примеры компиляться если использовать qtservice
что значит "если использовать qtservice"?
Данные примеры предназначены для демонстрации возможностей данной библиотеки (qtservice). Их и нужно модифицировать под свои нужды, с ними и нужно разобраться, изучить их pro-файл, исходники.
Записан

Юра.
QuAzI
Гость
« Ответ #9 : Декабрь 09, 2010, 17:57 »

Взял например qtservice-2.6_1-opensource\examples\interactive
В его директории всё компилируется. Создаю пустой проект, кидаю туда main.cpp от примера и вуаля - нифига не компилируется. До тех пор пока *.pro файл не подкину родной.

В итоге сейчас у меня пустое приложение с классом сервиса компилится с таким pro-файлом
Код:
TEMPLATE = app
CONFIG += console qt

SOURCES = main.cpp

include(d:\Qt\2010.05\qt\include\QtService\qtservice.pri)
Библиотеку подключаю
#include "d:\Qt\2010.05\qt\include\QtService\qtservice.h"
Где include\QtService содержит всё из qtservice-2.6_1-opensource\src, а common.pri лежит прямо в include\.

Я думал что дело в include(d:\Qt\2010.05\qt\include\QtService\qtservice.pri) в PRO-файле, но пробовал его дописывать в тот PRO что создавался при старте нового проекта - не помогает. А дальше было лень щемить, к чему он так трепетно относится, подкинул pro из нормально собирающегося проекта и буду дальше на него лепить что надо.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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