Bonjour à tous,
Mon programme est un service à l'aide de QtService. Tout compile correctement.
J'utilise QSettings et c'est là que ca bloque.. le problème est que la lecture des paramètres contenus dans le fichier .ini ne s'effectue pas lorsque le programme est lancé en tant que service. Le programme fonctionne nikel si je le lance à partir du cmd:
SolenSoft.exe -e
CService.h
CService.cpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 class CService : public QtService< QCoreApplication > { public: CService( int argc, char **argv ) : QtService< QCoreApplication >( argc, argv, "SolenSoft daemon" ) { setServiceDescription( "A TCP/IP service saving alarms & mesures into database" ); setServiceFlags( QtServiceBase::CanBeSuspended ); setStartupType( QtServiceController::AutoStartup ); } ~CService(); inline void pause(){ m_daemon->pause(); } inline void resume(){ m_daemon->resume(); } private: CServer *m_daemon; protected: void start(); };
main.cpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 void CService::start(){ //Démarre le service. QCoreApplication *app = application(); QSettings s( "config/solenSoft.ini", QSettings::IniFormat ); s.beginGroup( "network" ); int port = s.value( "port" ).toInt(); QString ip = s.value( "ipaddress" ).toString(); s.endGroup(); s.beginGroup( "mysql" ); QString dataBaseName = s.value( "databasename" ).toString(); QString hostName = s.value( "hostname" ).toString(); QString userName = s.value( "username" ).toString(); QCA::SecureArray data = s.value( "password" ).toByteArray(); //Récupère le mot de passe crypté. s.endGroup(); QString pw = ""; ...
Merci de votre aide!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 #include "cservice.h" int main( int argc, char **argv ){ CService service( argc, argv ); return service.exec(); }
Partager