Service sous Visual C++ 2003
J'ai essay� de faire mon premier service sous Visual C++ 2003 en m'inspirant (c'est m�me du plagiat) de l'exemple donn� dans la FAQ du site (voir http://c.developpez.com/faq/vc/?page...wToMakeService)
Visual C++ me retourne 2 erreurs au build:
- impossible de convertir 'const char *' en LPSTR � la ligne
Code:
1 2 3 4 5 6 7
| int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
SERVICE_TABLE_ENTRY serviceTable[]=
{
{SERVICE_NAME,(LPSERVICE_MAIN_FUNCTION)ServiceMain},
{NULL , NULL}
}; |
Probl�me r�gl� en rempla�ant
Code:
const char *SERVICE_NAME= "TestService";
par
Code:
LPSTR SERVICE_NAME= "TestService";
- le second probl�me, je ne trouve pas:
error C2065: 'TerminateEvent' : indetificateur non d�clar� � la ligne suivante:
Code:
WaitForSingleObject(TerminateEvent,INFINITE);
Quelqu'un peut-il m'aider?
Re: Service sous Visual C++ 2003
Citation:
Envoy� par lolo le belge
Probl�me r�gl� en rempla�ant
Code:
const char *SERVICE_NAME= "TestService";
par
Code:
LPSTR SERVICE_NAME= "TestService";
�a marche, mais d'un point de vue du langage tu n'es pas � l'abri d'un probl�me. Si jamais le nom SERVICE_NAME est modifi� (�criture dans la chaine point�e), tu obtiens un comportement ind�fini qui sous Windows se traduit par un plantage (les cha�nes constantes sont en lecture seule).
Change plut�t par:
Code:
TCHAR SERVICE_NAME[]= TEXT( "TestService" );
au passage tu rends aussi ton code compatible UNICODE.
Re: Service sous Visual C++ 2003
Citation:
Envoy� par Aurelien.Regat-Barrel
Citation:
Envoy� par lolo le belge
Probl�me r�gl� en rempla�ant
Code:
const char *SERVICE_NAME= "TestService";
par
Code:
LPSTR SERVICE_NAME= "TestService";
�a marche, mais d'un point de vue du langage tu n'es pas � l'abri d'un probl�me. Si jamais le nom SERVICE_NAME est modifi� (�criture dans la chaine point�e), tu obtiens un comportement ind�fini qui sous Windows se traduit par un plantage (les cha�nes constantes sont en lecture seule).
Change plut�t par:
Code:
TCHAR SERVICE_NAME[]= TEXT( "TestService" );
au passage tu rends aussi ton code compatible UNICODE.
Merci de ton conseil, je vais faire comme �a.