Salut tout le monde.
J'essaie de créer un Service.
Comme indiqué dans la FAQ : http://delphi.developpez.com/faq/?pa...alizenonappele
j'ai mis un CoInitialize( nil ); dans le ServiceStart et un CoUnitialize; dans le ServiceStop.
Ce service est un serveur en TCP/IP, lors d'une connexion d'un client, je vais ouvrir un document XML avec un objet TXMLDocument de cette façon :
Et j'ai le message d'erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 aXMLDoc := TXMLDocument.Create( Application ); aXMLDoc.DOMVendor := GetDOMVendor( 'MSXML' ); aXMLDoc.Active := True;
au moment de l'acitvation alors qu'il a bien été appellé lors du lancement du service (j'ai mis un ShowMessage pour vérifier). Je n'ai pas ce problème lorsque je fais la même chose avec une application classique.CoInitialize n'a pas été appelé
Je décide donc de mettre un nouveau CoInitialize juste avant de créer l'aXMLDoc, il ne me met plus de message d'erreur. Par contre, lors de la fermeture du service, j'ai ce message d'erreur :
Si pendant le service, il n'y a pas de connexion de client qui demande d'ouvrir de document XML (et donc pas de double CoInitialize), il n'y a pas de message d'erreur à la fermeture du service.Handle de fenêtre non valide
J'ai bien trouvé cette aide dans la FAQ : http://delphi.developpez.com/faq/?pa...enetreinvalide
Mais je doute que ce soit la solution dans mon cas, car un service n'est pas obligé d'avoir de fenêtre visible.
Merci pour votre aide.
Partager