Partager via


Conversion de projets du mode mixte en langage intermédiaire pur

Tous les projets CLR Visual C++ sont liés par défaut aux bibliothèques Runtime C.Par conséquent, ces projets sont classés comme applications en mode mixte, car ils contiennent à la fois du code natif et du code ayant pour cible le Common Language Runtime (code managé).Ils sont compilés en langage intermédiaire (IL, Intermediate Language), également appelé MSIL (Microsoft Intermediate Language).

Pour convertir votre application en mode mixte en langage intermédiaire pur

  1. Supprimez les liens aux C Run-Time Libraries (CRT) :

    1. Dans le fichier .cpp définissant le point d'entrée de votre application, modifiez le point d'entrée en Main().L'utilisation de Main() indique que votre projet n'établit pas de liaison avec le CRT.

    2. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le projet et sélectionnez Propriétés dans le menu contextuel afin d'ouvrir les pages de propriétés de l'application.

    3. Dans la page de propriétés du projet Avancé pour l'Éditeur de liens, sélectionnez le champ Point d'entrée et saisissez Main.

    4. Pour les applications console, dans la page de propriétés du projet Système pour l'Éditeur de liens, sélectionnez le champ Sous-système et changez son contenu en Console (/SUBSYSTEM:CONSOLE).

      [!REMARQUE]

      Il n'est pas nécessaire de définir cette propriété pour les applications Windows Forms parce que le champ Sous-système contient par défaut la valeur Windows (/SUBSYSTEM:WINDOWS).

    5. Dans stdafx.h, transformez en commentaires toutes les instructions #include.Par exemple, dans les applications console :

      // #include <iostream>
      // #include <tchar.h>
      

      ou

      Par exemple, dans les applications Windows Forms :

      // #include <stdlib.h>
      // #include <malloc.h>
      // #include <memory.h>
      // #include <tchar.h>
      
    6. Pour les applications Windows Forms, dans Form1.cpp, commentez l'instruction #include qui référence windows.h.Par exemple :

      // #include <windows.h>
      
  2. Ajoutez le code suivant à stdafx.h :

    #ifndef __FLTUSED__
    #define __FLTUSED__
       extern "C" __declspec(selectany) int _fltused=1;
    #endif
    
  3. Supprimez tous les types non managés :

    1. Le cas échéant, remplacez les types non managés par des références à des structures de l'espace de noms System.Les types managés courants sont répertoriés dans le tableau suivant :

      Structure

      Description

      Boolean

      Représente une valeur booléenne.

      Byte

      Représente un entier non signé 8 bits.

      Char

      Représente un caractère Unicode.

      DateTime

      Représente un instant, généralement exprimé sous la forme d'une date ou d'une heure.

      Decimal

      Représente un nombre décimal.

      Double

      Représente un nombre à virgule flottante double précision.

      Guid

      Représente un GUID (identificateur global unique).

      Int16

      Représente un entier signé 16 bits.

      Int32

      Représente un entier signé 32 bits.

      Int64

      Représente un entier signé 64 bits.

      IntPtr

      Type spécifique à la plateforme, utilisé pour représenter un pointeur ou un handle.

      SByte

      Représente un entier 8 bits signé.

      Single

      Représente un nombre à virgule flottante simple précision.

      Timespan

      Représente un intervalle de temps.

      UInt16

      Représente un entier non signé 16 bits.

      UInt32

      Représente un entier non signé 32 bits.

      UInt64

      Représente un entier non signé 64 bits.

      UIntPtr

      Type spécifique à la plateforme, utilisé pour représenter un pointeur ou un handle.

      Void

      Indique une méthode qui ne retourne pas de valeur ; autrement dit, cette méthode a le type de retour void.