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

C++/CLI Discussion :

MFC dans un service C++/CLI - erreur fatale


Sujet :

C++/CLI

  1. #1
    Membre actif

    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2003
    Messages
    286
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2003
    Messages : 286
    Points : 255
    Points
    255
    Par défaut MFC dans un service C++/CLI - erreur fatale
    Hello,

    Je commence a désespérer que mon service fonctionne un jour ...
    Voila mon soucis (le plus gros ...) :

    Mon projet compile en Debug. L'exe est créé.
    Lorsque je tente d'installer mon service via :
    nomService.exe -Install
    J'ai une belle erreur fatale de mon application ...
    AppName: servicemachin.exe AppVer: 0.0.0.0 AppStamp:4524ccd5
    ModName: mfc80ud.dll ModVer: 8.0.50727.42 ModStamp:4333b53e
    fDebug: 0 Offset: 00094588
    Le problème semble se situer au niveau de la lib mfc.
    En cliquant sur le bouton Débogage, au arrive dans la fonction AfxWinMain() :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    	// Perform specific initializations
    	if (!pThread->InitInstance())  // -> bug
    	{
    J'en arrive donc a me demander si c'est possible de faire fonctionner cette usine a gaz ...

    J'ai modifié plusieurs choses pour arriver a compiler, entre autres :

    - stdafx.h : J'ai rajouté la lib afxwin.h
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    // stdafx.h : fichier Include pour les fichiers Include système standard,
    // ou les fichiers Include spécifiques aux projets qui sont utilisés fréquemment,
    // et sont rarement modifiés
    #pragma once
     
    #define WIN32_LEAN_AND_MEAN		// Exclure les en-têtes Windows rarement utilisés
    #include <stdio.h>
    #include <tchar.h>
     
    #include <afxwin.h>         // composants MFC principaux et standard
    - J'ai changé l'option /clr:pure en :
    Prise en charge du Common Language Runtime (/clr)
    - J'ai changé l'option de prise en charge MFC en :
    Utiliser les MFC dans une DLL partagée

    Je ne sais pas trop si je n'ai pas fait mon mac gyver ... ce que je sais c'est que j'ai fais tout ca pour pouvoir instancier des classes provenant d'un projet C++ qui utilisait les MFC.

    Merci pour toute aide ...
    .: La cosse : il n'y a que ça de vrai :.

  2. #2
    Membre actif

    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2003
    Messages
    286
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2003
    Messages : 286
    Points : 255
    Points
    255
    Par défaut
    N'ayant aucune réponse (ce que je trouve assez étonnant ...) je fais un Up.

    Le problème (résumé) : Comment intégrer le support des MFC dans mon service C++/CLI ?

    merci ...
    .: La cosse : il n'y a que ça de vrai :.

  3. #3
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    tu as fait un projet service C++/CLI et tu rajoutes les MFC
    ou bien
    tu as fait un prog service MFC et tu veux rajouter du C++/CLI ?

  4. #4
    Membre actif

    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2003
    Messages
    286
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2003
    Messages : 286
    Points : 255
    Points
    255
    Par défaut
    Salut,

    J'ai fais un projet service C++/CLI et j'ai rajouté les MFC (mais je m'y prends surement mal ...)
    .: La cosse : il n'y a que ça de vrai :.

  5. #5
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    je constate ce problème aussi
    sans les mfc, le service marche nickel, avec les MFC il ne démarre pas

    j'avoue n'avoir pas investigé plus que ca, tu as vraiment besoin des MFC ?

  6. #6
    Membre actif

    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2003
    Messages
    286
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2003
    Messages : 286
    Points : 255
    Points
    255
    Par défaut
    Oui puisque j'ai des classes qui (apparemment) utilisent mfc ...
    CString par exemple ...
    .: La cosse : il n'y a que ça de vrai :.

  7. #7
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    ce n'est pas possible d'envisager d'utiliser System::String à la place de CString ?

    il est peut-etre possible d'utiliser MFC dans un service C++/CLI, mais je n'en sais rien

  8. #8
    Membre actif

    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2003
    Messages
    286
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2003
    Messages : 286
    Points : 255
    Points
    255
    Par défaut
    ce n'est pas possible d'envisager d'utiliser System::String à la place de CString ?
    Si je commence a devoir me taper tout mon code a modifier je ne suis pas sortis, et je me demande ou est l'interopérabilité ...

    Je te remercie en tout cas même si ca ne m'aide pas trop ^^
    .: La cosse : il n'y a que ça de vrai :.

  9. #9
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    j'vais essayer de me renseigner un peu plus, je te tiens au courant

  10. #10
    Membre actif

    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2003
    Messages
    286
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2003
    Messages : 286
    Points : 255
    Points
    255
    Par défaut
    OK, je te remercie ...
    .: La cosse : il n'y a que ça de vrai :.

  11. #11
    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
    Points : 17 323
    Points
    17 323
    Par défaut
    les MFC fonctionnent sans probleme dans un service a conditions de ne pas utiliser la partie graphique (gui)....
    donc pas de classe d'application etc ..., juste utilisation des classes de travail CString et autres.
    ce qui ne semble pas etre le cas dans la portion de code que tu montres.
    comment ça se fait que ça part dans InitInstance ?


  12. #12
    Membre actif

    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2003
    Messages
    286
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2003
    Messages : 286
    Points : 255
    Points
    255
    Par défaut
    Salut farscape

    Je t'assure a 95% () que je n'utilise pas de GUI dans mon code ...
    Je dois donc mal me démerder quelque part ...

    Comment fais-tu pour ajouter la prise en charge des MFC dans un service ?

    merci !
    .: La cosse : il n'y a que ça de vrai :.

  13. #13
    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
    Points : 17 323
    Points
    17 323
    Par défaut
    tu créés un projet console avec utilisation des MFC.
    comme dans la faq:
    http://c.developpez.com/faq/vc/?page...wToMakeService

    pour que ça plante dans InitInstance ce n'est pas clair,
    tu ne devrais pas avoir d'appel à cette fonction ....

  14. #14
    Membre actif

    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2003
    Messages
    286
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2003
    Messages : 286
    Points : 255
    Points
    255
    Par défaut
    ahhh .. c'est vrai que c'est une solution (une de + parmi celles que je me suis déjà arraché a essayer ^^)

    En fait, ils auraient dû (VS2005) se débrouiller pour permettre la création de service en C++ pur (comprendre : pas en c++/cli ...) un peu comme ton squelette de service.

    Cela ne résouds en aucun cas mon problème de création de service via c++/cli et winforms.
    J'aimerais bien arriver a faire fonctionner mon service avec ce langage, cela me permettrait (tant qu'a faire) d'utiliser .net pour certaines fonctions futures ...

    Mais au pire, ta solution en c++ (tu livres le squelette ) pourrait effectivement me dépanner ... en espérant que je ne rencontre pas d'autres problèmes

    merci !
    .: La cosse : il n'y a que ça de vrai :.

  15. #15
    mat.M
    Invité(e)
    Par défaut
    Citation Envoyé par basnifo
    Salut farscape

    Je t'assure a 95% () que je n'utilise pas de GUI dans mon code ...
    Je dois donc mal me démerder quelque part ...
    merci !
    Pourquoi veux-tu absolument utiliser des MFC dans un service ?? Les MFC c'est pour des applis graphiques.
    Un service c'est une couche logicielle en dessous plus proche de l'OS.

  16. #16
    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
    Points : 17 323
    Points
    17 323
    Par défaut
    salut,
    certes on peut se passer des MFC pour un service
    j'ai ecris des services qui utilisaient la classe socket des MFC ...
    certaines classes utilitaires MFC peuvent rendre service (sans jeux de mots )

Discussions similaires

  1. Erreur fatale dans les DDE
    Par carolu dans le forum SAS Base
    Réponses: 10
    Dernier message: 05/05/2011, 17h17
  2. ERREUR FATALE dans logiciel R
    Par RTremblay dans le forum R
    Réponses: 1
    Dernier message: 19/04/2011, 01h12
  3. [WD10] Erreur Fatale dans l'application
    Par IsabelleC dans le forum WinDev
    Réponses: 2
    Dernier message: 25/04/2007, 11h36
  4. Réponses: 5
    Dernier message: 04/10/2006, 15h45
  5. erreurs fatal error C1010 dans visual c++ 6.0
    Par screeminelle dans le forum MFC
    Réponses: 2
    Dernier message: 12/10/2005, 13h30

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