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 :

Application ne s'ex�cute pas sans Visual Studio


Sujet :

MFC

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre habitu�
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Juillet 2002
    Messages
    10
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 47
    Localisation : Canada

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2002
    Messages : 10
    Par d�faut Application ne s'ex�cute pas sans Visual Studio
    Bonjour � tous, j'ai un probl�me assez particulier...

    C'est une application d�velopp�e � la base avec VS C++ (MFC) 2005 qui fonctionne tr�s bien...

    Je viens de migrer cette application vers VS 2010. Encore l�, aucun probl�me. L'application tourne tr�s bien sur ma machine de d�veloppement en mode release et debug et sur d'autres machines o� VS 2010 est install�.. Mais petit probl�me lorsque j'essaie de rouler l'application sur une machine o� VS 2010 n'est pas install�. L'application s'ouvre et se ferme sans message d'erreur autre que: l'application a plant� et doit se fermer.

    Bref je suis all� voir dans event viewer de la machine et voici le message d'erreur obtenu:
    Faulting application PRIM.exe, version 1.0.0.1, faulting module msvcr100.dll, version 10.0.30319.415, fault address 0x0008cb95.
    Pas trop bavard comme message d'erreur sinon que l'utilisation d'une classe MFC a fait planter mon application.

    Je vous explique un peu l'architecture de mon Application:

    J'ai une librairie qui contient mes classes qui ajoutent des fonctionnalit�s aux classes MFC
    ex: CMyDialog d�rive de CDialog, CEditNumber d�rive de CEdit etc...
    Tout ce module est compil� et produit une librairie que j'utilise dans mes autres modules.

    Ensuite j'ai 8 DLL (MFC Extension) qui divisent mon application en diff�rents Modules m�tier (Ces dll font appel bien entendu � la librairie pr�c�dente).

    Puis j'ai mon exe qui g�re la structure de l'application et qui appelle les classes contenues dans mes DLL.

    J'ai mis des traceurs pour tenter de voir o� le code arr�tait et il s'arr�te sur le premier appel d'une fonction MFC (DoModal) provenant d'un objet d'une de mes DLL qui d�rive de ma classe CMyDialog. Tous les appels aux classes MFC provenant du Exe fonctionnent tr�s bien. c'est seulement lorsque j'appelle les classe MFC via mes DLL que �a plante et comme je le disais seulement si VS2010 n'est pas pr�sent sur la machine.


    Quelqu'un � rencontr� ce genre de probl�me?

    Merci pour votre aide

    Etienne

  2. #2
    R�dacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en s�curit�
    Inscrit en
    Mai 2007
    Messages
    11 517
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 62
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations professionnelles :
    Activit� : Consultant en s�curit�
    Secteur : High Tech - Op�rateur de t�l�communications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par d�faut
    Est ce que sur la machine o� cela plante, tu as install� les redistribuables VS 2010.

    Ce qui me fait pense � cela, c'est qu'avant, tu �tait en 2005 et que je suppose que cela fonctionnait. Maintenant, tu as migr� d'environnement de d�veloppement vers VS 2010. Ton programme fonctionne sur ta machine de d�veloppement, ce qui est normal car ces redistribuables VS 2010 sont implicitement install�s sur une machine de dev VS 2010.

    Le binaire g�n�r� a chang� de d�pendances, avant il utilisait les redistribuables 2005, maintenant, c'est les redistribuables VS 2010 qu'il utilise et qu'il faut installer.

    Tu trouveras le setup de ces redistribuables sur ta machine de dev (il faut rechercher un fichier qui s'appelle redit) ou bien sur le site Microsoft.
    Raymond
    Vous souhaitez participer � la rubrique R�seaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs syst�me et r�seau � configurer leurs �quipements SNMP r�seau.
    e-verbe Un logiciel de conjugaison des verbes de la langue fran�aise.

    Ma page personnelle sur DVP
    .

  3. #3
    Expert confirm�
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2005
    Messages
    5 505
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 5 505
    Par d�faut
    Pour �tre s�r que c'est bien un probl�me de "Dll Hell" comme le suppute ram-000, j'installerais les outils de debugging Windows sur l'une machine o� cela plante.
    http://msdn.microsoft.com/en-us/wind...dware/gg463009

    Cela permet d'avoir un fichier .dmp lors du plantage et de faire une autopsie du probl�me avec WinDbg ou VS.

    P.S.: N'oubliez pas de g�n�rer les .pdb.

  4. #4
    Membre habitu�
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Juillet 2002
    Messages
    10
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 47
    Localisation : Canada

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2002
    Messages : 10
    Par d�faut
    Merci pour vos r�ponses...

    en r�ponse � ta question ram-0000. Oui les packages de redistribution on �t� install� j'ai d�j� tout v�rifi� de ce cot�.

    Bacelar je vais essay� ta suggestion � l'instant..

    Mais voici quelques update concernant mon probl�me peut �tre que ce va vous aid� � m'aider

    Tout d'abord le plantage que j'observait � la base sur les machine qui n'avait pas VS 2010 d'install� s'est av�r� une mauvaise piste.

    Je d�veloppais avec VS2005 sur un Vista pro 32bits... j'ai chang� de machine et du m�me coup je me suis dis pkoi pas upgrad� le compilateur en m�me temps.

    Je suis maintenant rendu sur VS2010 sous Seven Pro 64bits. mes machines de test sont:
    mon ancien pc vista 32 bit (sans VS 2010) et �a plante.
    un serveur 2003 32 bit (sans vs 2010) et �a plante.
    un pc WinXP 32 bit (sans VS2010) et �a plante.
    et un PC Win7 64bit (sans VS2010) et �a plante.

    Donc les 2 seule PC o� �a ne plantais pas �tait le miens et celui de mon coll�gue tous deux en win7 64bit avec VS 2010 d'o� ma conclusion erron�
    que �a ne plantais pas seulement si VS2010 �tait install�.

    Cependant je me suis rendu compte que le plantage sur la machine Win7 64bits ne donnait pas la m�me erreur que sur le machine 32bits.

    alors j'ai maintenant tout les machine en 64 bits fonctionne correctement suite � l'application de cette solution:
    http://support.microsoft.com/kb/976038
    ce correctif est compris dans le sp1 de win7 (ce qui n'�tait pas install� sur ma machine de test mais qui �tait install� sur les pc de d�veloppement).


    Donc le probl�me est toujours pr�sent sur mes poste en 32bits.

    mais voil� j'ai pouss� plus loin ma recherche j'ai install� VS2010 sur mon PC Vista 32 bits. j'ai tout copier mes sources sur le PC et compil� le tout.

    Puis miracle tout fonctionne.

    Donc en r�sum� si je compile avec un windows 32bits mon application fonctionne partout. Si je compile avec un windows 64bits �a ne fonctionne que sur des poste en 64bits.

    D�sol� de vous avoir lancer sur de mauvaise piste au d�but maintenant que le prob�me se pr�cise si vous avez des suggestions pour que je puisse utilis� uniquement mon PC de d�veloppement car c'est vraiment chiant d'avoir � tout compiler sur mon ancien PC.

    Encore merci pour votre aide.

  5. #5
    Expert confirm�
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2005
    Messages
    5 505
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 5 505
    Par d�faut
    Creusez le probl�me avec les outils de debugging Windows.

    Il est clair que votre projet � aussi de gros probl�me de d�pendance vis � vis de la machine de build, et �a c'est pas bien.

    Vous devez pouvoir g�n�rer n'importe quelle version de votre ex�cutable (32bits/64 bits, ASCII/UNICODE, pour XP ou pour vista) sur n'importe quelle machine. C'est de la cross-compilation.

    Il existe un certain nombre de constantes de compilation qui permettent de sp�cifier la plateforme cible.

  6. #6
    Membre habitu�
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Juillet 2002
    Messages
    10
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 47
    Localisation : Canada

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2002
    Messages : 10
    Par d�faut
    Merci pour la suggestion j'ai t�l�charger et install� WinDbg tel que sugg�rer je vais creus� d'avantage le probl�me avec cet outil et vous revenir avec d'avantage de d�tail.

    Concernant la d�pendance � la machine de build si c'est le cas. Cela � �t� fait bien malgr� moi car j'ai toujours d�velopp� sur une machine 32 bits et je n'ai jamais eu de probl�me sur les postes de production (32 et 64 bits).

    c'est seulement depuis mon nouveau PC de d�veloppement en 64bits que les probl�mes sur les machines 32bits ne fonctionne pas bien.

    J'ai v�rifier tout les param�tres des mes diff�rents module et tout semble correct.

    Ce qui est dr�le c'est que les appels � la librairie MFC via l'ex�cutable ne font pas planter. c'est lorsque mon exe appel une Classe d'une de mes DLL qui elle appel la librairie MFC que �a plante et �a plante vraiment lors de l'appel d'une fonction MFC qui interviens au niveau graphique Ex: je d�clare une CDialog c'est ok .. j'initialise certaine variable dans le de dialog c'est ok .. j'appel DoModal.. �a plante.

    Bref j'apprivoise le nouvel outil de debbugin et je vous reviens avec des d�tails. Merci encore.

Discussions similaires

  1. R�ponses: 2
    Dernier message: 07/07/2011, 23h28
  2. [Excel + C#] Utilisation sans Visual Studio .NET
    Par ketthos dans le forum Windows Forms
    R�ponses: 6
    Dernier message: 03/07/2007, 12h32
  3. Application ne marchant pas sans visual studio
    Par shivack dans le forum EDI/Outils
    R�ponses: 2
    Dernier message: 15/05/2007, 16h02
  4. ASP.NET sans Visual Studio?
    Par kahya dans le forum ASP.NET
    R�ponses: 3
    Dernier message: 09/03/2007, 09h21
  5. [PPC][Emulateur VS]Comment synchroniser sans Visual Studio?
    Par arnolem dans le forum Windows Mobile
    R�ponses: 1
    Dernier message: 01/03/2006, 16h55

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