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 :

Runtime VC++ ou MFC


Sujet :

MFC

  1. #1
    Futur Membre du Club
    Inscrit en
    Septembre 2002
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 6
    Points : 5
    Points
    5
    Par défaut Runtime VC++ ou MFC
    Bonjour,

    J'entends souvent parler de la runtime VC++. Il me semble savoir ce que veut dire runtime, par exemple dans les cas de java ou de VB qui fournissent du code à interpréter. Par contre, la compilation C++ étant native, pourquoi donc parler de runtime VC++ ?

    A la mesure, je comprendrais mieux que l'on parle de runtime MFC (pour évoquer la librairie MFC qui, c'est vrai, est indispensable pour 90% des projets sous VC++). Voilà, ma remarque est-elle légitime ou n'ai-je vraiment rien compris ?

    Merci beaucoup de votre aide.

  2. #2
    Membre du Club
    Inscrit en
    Novembre 2002
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Novembre 2002
    Messages : 35
    Points : 44
    Points
    44
    Par défaut
    Bonjour,

    VC++ est un compliateur qui est executer par un environement de developpement Qui s'appelle visual studio.

    MFC c'est une librairie et des wizards intégré a visual studio c++, qui permettent de developper plus rapidement pour du rad.

    MFC correspond un peu a swing et l'awt à win32 pour faire un parallele avec Java. Bien que swing ne s'appui pas sur l'awt, alors que MFC s'appui sur Win 32. MFC est en faite une surcouche au dessus de win32 avec un puissant générateur de macro qui prend en charge l'écriture de pas mal de ligne de code. Alors que swing est un réécriture complète dans un mode événementiel différent de celui d'awt, une nouvelle version différente quoi.

    Voila j'espere que c'est un peu plus claire ... =)

  3. #3
    Futur Membre du Club
    Inscrit en
    Septembre 2002
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Merci, mais cela ne répond pas vraiment à ma question.

    D'autre part :

    VC++ est un compilateur qui est exécuté par un environnement de développement qui s'appelle Visual Studio
    Cette phrase est très louche. Je dirais plutôt que VC++ regroupe un environnement de développement et un compilateur, et que ce logiciel fait parti du pack Visual Studio. En tout cas, Visual Studio n'a rien à voir avec une runtime.

    Ma question demeure :
    Ne devrait-on pas plutôt parler de runtime MFC que de runtime VC++ ?

  4. #4
    mat.M
    Invité(e)
    Par défaut
    Bonjour,
    d'une manière ou d'une autre il ya tjs un "runtime" même avec un .exe compilé avec cible dos 16 bit ( la runtime C même en Turbo Pascal ).
    Ce dont tu parles de runtime VC++ n'est en fait que l'ensemble de dll encapsulant les librairies MFC ( dont les autre personnes ont parlé ).
    Effectivement une appli VC/MFC peut être compilée en natif avec liaison statique mais l'exe final sera plus gros.
    Donc pour les projets
    * avec MFC ( AppWizard ) : liaison statique ou dynamique ( avec dll donc runtime )
    *win32 pure : les bibliothèques d'instructions ( donc en fait les API ) sont contenues dans les dll systèmes.Donc pas de runtime.
    *ATL-COM : pas de runtime

    Pour MFC liaison statique ou dynamique : cela dépend de la taille du projet dit le MSDN. Mais par exemple avec un projet de gestion et moteur SGBDR ( comme ADO ) il ya pourtant des dll à distribuer.

  5. #5
    Futur Membre du Club
    Inscrit en
    Septembre 2002
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Merci, tu confortes ce que je pensais et c'est cool !

    Et effectivement, maintenant que tu le dis, je me rappelle d'avoir vu le mot runtime à l'époque où j'apprenais le Turbo Pascal (il y a au moins 10 ans) . Mais, dans ce contexte, que signifie-t'il ?

  6. #6
    Membre du Club
    Inscrit en
    Novembre 2002
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Novembre 2002
    Messages : 35
    Points : 44
    Points
    44
    Par défaut
    Bonsoir,

    Le prb est que je ne sais pas ton niveau si tu veux une def exact :

    runtime

    Runtime is when a program is running (or being executable). That is, when you start a program running in a computer, it is runtime for that program. In some programming languages, certain reusable programs or "routines" are built and packaged as a "runtime library." These routines can be linked to and used by any program when it is running.
    Programmers sometimes distinguish between what gets embedded in a program when it is compiler and what gets embedded or used at runtime. The former is sometimes called "compile time."

    For a number of years, technical writers resisted "runtime" as a term, insisting that something like "when a program is run" would obviate the need for a special term. Gradually, the term crept into general usage.


    J'ai essayer de t'expliquer par rapport au mots que tu employais dans ton poste ...

  7. #7
    mat.M
    Invité(e)
    Par défaut
    Et effectivement, maintenant que tu le dis, je me rappelle d'avoir vu le
    mot runtime à l'époque où j'apprenais le Turbo Pascal (il y a au moins 10 ans) . Mais, dans ce contexte, que signifie-t'il ?
    Technoguru a donné la définition intégrale. Matériellement c'est soit une portion de code compilé à part ( mécanisme d'une d.l.l.) ou bien un "stub" c'est à dire un bloc de code lié statiquement à la compilation auquel les fonctions déclarée par le programmeur vont faire appel.
    Il faut s'imagine écrire soit même un compilateur C : une fois la difficulté à écrire un "parser" ou analyseur syntaxique , lorsque ce "parser" rencontre une instruction comme printf , celle-ci est une fonction C standard.
    Donc on va réaliser des routines en assembleur qui contiendront ce printf ( ou scanf, puts,getch...)
    Cette ensemble de routines sera le "stub"

  8. #8
    Membre régulier
    Inscrit en
    Avril 2002
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 61
    Points : 83
    Points
    83
    Par défaut
    A mon sens il est impropre de parler de runtime VC++.

    Comme quelqu'un l'a justement fait remarquer, le compilateur de
    VC++ génère du code machine donc pas besoin d'un interpréteur
    pour l'exécuter.

    Ce qu'on appelle improprement runtime VC++ est la librairie
    msvcrt.dll laquelle se trouve généralement dans le répertoire
    c:\winnt\system32

    Si vous regardez les symboles exportés par cette librairie vous
    trouverez par exemple :

    memcpy,printf, etc etc...

    Cette librairie est donc l'équivalent de la librairie C/C++ standard.

  9. #9
    Membre régulier
    Profil pro
    Ingénieur R&D
    Inscrit en
    Juillet 2002
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2002
    Messages : 81
    Points : 74
    Points
    74
    Par défaut
    J'allais justement poser la question à propos de ce fichier...

    Quelle est son utilité alors ?

  10. #10
    Futur Membre du Club
    Inscrit en
    Septembre 2002
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Oui, donc pour résumer, tous les langages de haut niveau possèdent une runtime. C'est une notion très vaste (et donc très ambigüe) qui regroupe tout les mécanismes appelés lors de l'exécution du programme, par exemple les interpréteurs et/ou les sous-programmes externes.

    Il n'existe donc pas de runtime spécifique à VC++, mais dans un abus de langage, on pourrait dire que celle-ci regroupe la runtime C, la runtime API Win32, la runtime MFC etc.

    Merci à tous pour toutes vos précisions.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. utiliser les tag [MFC] [Win32] [.NET] [C++/CLI]
    Par hiko-seijuro dans le forum Visual C++
    Réponses: 8
    Dernier message: 08/06/2005, 15h57
  2. [MFC](encapsulation ADO) ou placer le code
    Par philippe V dans le forum MFC
    Réponses: 2
    Dernier message: 13/06/2002, 14h58
  3. Réponses: 2
    Dernier message: 10/06/2002, 11h03
  4. [MFC] ADO connection
    Par philippe V dans le forum MFC
    Réponses: 3
    Dernier message: 10/06/2002, 07h36
  5. [Kylix] Runtime error 230 avec INDY
    Par Anonymous dans le forum EDI
    Réponses: 2
    Dernier message: 23/03/2002, 11h51

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