IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MFC Discussion :

Service sous Visual C++ 2003


Sujet :

MFC

  1. #1
    Membre confirmé
    Profil pro
    Chef de projet
    Inscrit en
    Février 2003
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef de projet

    Informations forums :
    Inscription : Février 2003
    Messages : 86
    Par défaut 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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    const char *SERVICE_NAME= "TestService";
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LPSTR SERVICE_NAME= "TestService";
    - le second problème, je ne trouve pas:
    error C2065: 'TerminateEvent' : indetificateur non déclaré à la ligne suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        WaitForSingleObject(TerminateEvent,INFINITE);
    Quelqu'un peut-il m'aider?

  2. #2
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    salut,
    ta variable TerminateEvent ne doit pas etre declarée .

  3. #3
    Membre confirmé
    Profil pro
    Chef de projet
    Inscrit en
    Février 2003
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef de projet

    Informations forums :
    Inscription : Février 2003
    Messages : 86
    Par défaut
    Citation Envoyé par farscape
    salut,
    ta variable TerminateEvent ne doit pas etre declarée .
    Bizarre, c'est pourtant identiquement le code de la FAQ...

  4. #4
    Membre confirmé
    Profil pro
    Chef de projet
    Inscrit en
    Février 2003
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef de projet

    Informations forums :
    Inscription : Février 2003
    Messages : 86
    Par défaut
    Je pense que c'est une erreur danns le code de la FAQ. Cela devrait être

    WaitForSingleObject(hTerminateEvent,INFINITE);

    et non pas

    WaitForSingleObject(TerminateEvent,INFINITE);

    Je vérifie cela demain matin...

  5. #5
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    En effet c'est fort possible ...
    je vais corriger

  6. #6
    Expert confirmé

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par défaut Re: Service sous Visual C++ 2003
    Citation Envoyé par lolo le belge
    Problème réglé en remplaçant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    const char *SERVICE_NAME= "TestService";
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    TCHAR SERVICE_NAME[]= TEXT( "TestService" );
    au passage tu rends aussi ton code compatible UNICODE.

  7. #7
    Membre confirmé
    Profil pro
    Chef de projet
    Inscrit en
    Février 2003
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef de projet

    Informations forums :
    Inscription : Février 2003
    Messages : 86
    Par défaut 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 : Sélectionner tout - Visualiser dans une fenêtre à part
    const char *SERVICE_NAME= "TestService";
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    TCHAR SERVICE_NAME[]= TEXT( "TestService" );
    au passage tu rends aussi ton code compatible UNICODE.
    Merci de ton conseil, je vais faire comme ça.

  8. #8
    Membre confirmé
    Profil pro
    Chef de projet
    Inscrit en
    Février 2003
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef de projet

    Informations forums :
    Inscription : Février 2003
    Messages : 86
    Par défaut
    Citation Envoyé par lolo le belge
    Je pense que c'est une erreur danns le code de la FAQ. Cela devrait être

    WaitForSingleObject(hTerminateEvent,INFINITE);

    et non pas

    WaitForSingleObject(TerminateEvent,INFINITE);

    Je vérifie cela demain matin...
    C'est bien cela, le build passe maintenant. Il ne reste plus qu'à tester

  9. #9
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    note: j'ai mis a jour mon projet sur le lien ftp.

Discussions similaires

  1. Lier la dll Magick++ sous visual studio 2003
    Par Julien1138 dans le forum Visual C++
    Réponses: 1
    Dernier message: 21/12/2006, 13h03
  2. Réponses: 2
    Dernier message: 25/04/2006, 10h58
  3. Compiler un projet BORLAND C++ sous Visual Studio 2003???
    Par vdumont dans le forum C++Builder
    Réponses: 4
    Dernier message: 13/03/2006, 22h13
  4. Connection Odbc via VC7 sous Visual studio 2003
    Par jlassira dans le forum MFC
    Réponses: 1
    Dernier message: 01/02/2006, 11h06
  5. Réponses: 6
    Dernier message: 09/12/2005, 15h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo