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.cppCode:
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.cppCode:
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:
1
2
3
4
5
6
7 #include "cservice.h" int main( int argc, char **argv ){ CService service( argc, argv ); return service.exec(); }