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 :

Intégrer du MFC dans un projet qui n'en a pas. c'est possible?


Sujet :

MFC

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2008
    Messages : 6
    Par défaut Intégrer du MFC dans un projet qui n'en a pas. c'est possible?
    Bonjour à tous,

    je viens vers vous car je débute avec la programmation Windows et je me trouve pris par le temps.

    Je vais tacher de vous résumer ma situation et mon environnement de travail en espérant être assez clair. Ne sachant pas tout les éléments qui pourraient vous être utile, je vous pris de ne pas hésiter à me solliciter pour avoir des précisions sur des options, des copies d'écran ou autre.

    Pour mieux me situer, j'ai repris des études et je dois réaliser un projet de dév. Mes cours n'ont pas été spécifiquement orienté technologie Microsoft et environnement Windows. C'est une formation assez généraliste qui donne un aperçu de plusieurs langage de dév, des bases de données, du SI, ....

    Mon projet m'a été fourni par une entreprise d'imagerie médicale qui souhaite ajouter la prise en charge d'un nouveau matériel à son logiciel maison. Pour cela, l'entreprise m'a fourni les éléments suivant :
    - Librairie Qt à compiler sur notre poste en v4.7
    - Librairie OpenCV v2.2 (pour le traitement d'image)
    - Librairie dcmtk v3.5.4 (manipulation norme DICOM)
    - Langage C++
    - IDE : Visual Studio 2010 Express
    - le nouveau matériel est fourni avec un SDK comprenant dll, .cpp et .h pour accès à la dll et une appli démo avec ses sources.

    Mon problème : n'arrivant pas à compiler un programme de test pour appeler la dll, j'ai perdu du temps à comprendre qu'elle utilise les librairie MFC. Ensuite j'ai également perdu du temps à comprendre que la version Express de Visual ne gère pas les MFC. Ce point à été réglé en passant à la version Visual Studio Pro.

    Néanmoins, je n'arrive pas à compiler car je ne sais pas comment faire pour intégrer dans un simple projet en C++ des éléments de classe MFC?
    Dois-je changer des paramètres au projet Visual ou bien faire l'ajout de .h ou bien les 2?
    Mais la réponse est peut-être que c'est impossible?....

    Voilà, je me noie sous la documentation qui me parle de MFC pour faire de jolie application fenêtrée mais moi je n'ai pas besoin de l'affichage de la fenêtre (il y a Qt) donc je ne trouve pas de réponse pour régler mes problèmes d'intégration/compilation.

    Merci d'avance pour être arrivé à lire jusqu'à cette ligne et encore plus de merci si vous pouvez m'aider/m'orienter pour trouver une solution

  2. #2
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Je dirais que ça dépends de quelles parties de MFC sont utilisées par le code que tu veux ajouter à ton application...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre émérite
    Homme Profil pro
    Inscrit en
    Février 2006
    Messages
    564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations forums :
    Inscription : Février 2006
    Messages : 564
    Par défaut
    Bonjour.

    Il nous faut un minimum d'infos pour t'aider, par exemple quelles sont les erreurs lors de la compilation et le code minimaliste de ton test. Je confirme les dires de Médinoc, si tu n'utilises pas de classes MFC il n'y a aucune raison d'inclure les entêtes dans ton projet en revanche tu devras modifier les propriétés de ton projet pour lui dire d'utiliser les MFC ainsi que les différents dossiers (include, lib).

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 487
    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 487
    Par défaut
    Je confirme les dires de mes voisins du dessus.
    Mais je voudrais ajouter ma pierre au questionnement.
    Vous indiquez que l'exemple fourni dans le SDK utilise les MFC, mais il y a une chose très importante à savoir dés le début :
    Est-ce que la Dll a besoin des MFC ?
    Si ce n'est que le programme de test qui à besoin des MFC, vous n'avez pas besoin de vous embêter avec les MFC. Faire cohabiter les MFC et Qt est une tâche qui potentiellement est très complexe voir impossible.
    La documentation du SDK devrait indiquer la dépendance aux MFC, et à quelle version, si c'est la dll qui est dépendante des MFC.
    Si vous avez des extraits du code qui correspondent a l'utilisation des fonctions de la Dll, cela permettrait de savoir si c'est la Dll ou l'exemple qui a besoin des Dll.
    Vous pouvez utiliser dependency walker (http://www.dependencywalker.com/)pour savoir si la Dll depend fortement des MFC.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2008
    Messages : 6
    Par défaut
    Bonjour,

    merci de vos retour et mes excuses du retard pour répondre mais d'autre priorité mon occupé entre temps (des exams par exemple )

    Voici une partie du fichier .h qui me pose soucis et particulièrement une ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    /** *************************************************************** **
     **          Radiography Detector: application interface            **
     **  (c) VATech                                         by S.B.     **
     **  initial release: July-2007                                     **
     **  recent edition : Sept-2008                                     **
     ** *************************************************************** **/
     
    #ifndef VADAVINTF_H_INCLUDED
    #define VADAVINTF_H_INCLUDED
      ////// acquisition //////
     
    ////  Je passe le code qui ne pose pas de souci //////
     
      typedef struct {         // Custom information record
    	  int  rNumReceivedRows, // acquisition uses this field to print messages
    		  rComplete;        // indicates that caller terminates (by some reason) and expects "close"
    	  // the possible reasons are: 'complete', 'error' or 'abort'
    	  int rCalMode;
    	  CWnd *rhWnd;
      } tCallBackRec;
     
      // callback procedure  
      typedef void (_stdcall *tVDC_CallBackProc)( tVDC_CallBackRec* );
     
    ///// Je vous épargne le reste du code
    Si mes recherches sont bonnes ma structure ci-dessus contient le type CWnd qui correspond à un objet MFC, selon MSDN : "Fournit les fonctionnalités de base de toutes les classes de fenêtres dans la bibliothèque MFC".
    Lors de la compilation de mon projet Qt, le compilateur me dis qu'il manque un ';' après 'CWnd *'. La structure est utilisée pour communiquer des informations entre le capteur et mon "futur" programme mais je ne pense pas que la dll s'amuse à afficher des fenêtres

    Ci-dessous, l'entête du fichier cpp le reste du code ne me semble pas pertinent pour le moment.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    /** *************************************************************** **
     **          Radiography Detector: application interface            **
     **  (c) VATech                                         by S.B.     **
     ** *************************************************************** **/
     
    #include "stdafx.h"
    #include "windows.h"
    #include "tchar.h"
    #include "VADAVIntf.h"
    Voici mes étapes de travail pour testé la librairie avec Qt.
    J'ai installé Qt sous Visual 2010 en suivant le tuto de Xavinou http://qt.developpez.com/tutoriels/e...l-studio-2010/.
    J'ai repris le projet test et seulement ajouté le .h et le .cpp au projet.
    Il s'agit d'un projet de type 'makefile' et la compilation est tombé en erreur en me disant parmi les erreur qu'il manque un ';' après 'CWnd *'.

    J'ai créé un projet "hello world" sous Visual de type MFC, j'y ai ajouté le .h et le .cpp et là j'ai pus compiler. En voulant jouer sur les propriétés des projets MFC et 'makefile' je me rend compte que les options disponibles ne sont pas les mêmes. Il faut sûrement ajouter des lib et includes mais je ne sais pas lesquels.

    Pour la documentation du SDK, la seul infos à ma disposition est la suivante :
    This library (and demo projects) is originally written in “ MS Visual C 6.0 ”. That old IDE (Integrated Developers’ Environment) was used for fast installation for debug when required. Release version built by “MS Visual Studio 2005” (that improves 2-5% speed of calibration and image processing). Supplementary projects are for “VC 6.0” or “VS 2005” (they exist in directories with extension “.VC8”). MFC is built-in as static library.
    J'espère avoir précisé un peu les choses, pour les msg d'erreurs je compléterai un peu plus tard car je n'ai pas la machine sous la main au moment où je saisi ces lignes.

    Encore merci de votre aide.

  6. #6
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Houlà, mélanger des CWnd* (l'essence de l'interface graphique dans MFC) avec des fenêtres QT, ça s'annonce très mal. QT est censé faire abstraction de l'API Windows, alors que MFC l'embrasse complètement...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

Discussions similaires

  1. Réponses: 1
    Dernier message: 28/01/2011, 12h11
  2. intégrer google maps dans son projet
    Par miya dans le forum Flex
    Réponses: 11
    Dernier message: 17/04/2009, 19h04
  3. Intégrer le framework dans un projet
    Par costaupo dans le forum Général Dotnet
    Réponses: 1
    Dernier message: 16/03/2007, 10h57
  4. Intégrer crystal report dans un projet jbuilder compilé
    Par stroumfs dans le forum JBuilder
    Réponses: 1
    Dernier message: 02/03/2007, 21h55
  5. [MFC] Utiliser la MFC dans un projet ATL
    Par glKabuto dans le forum MFC
    Réponses: 6
    Dernier message: 24/04/2006, 15h17

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