Compartir a través de


Convertir proyectos de modo mixto a lenguaje intermedio puro

De forma predeterminada, todos los proyectos CLR de Visual C++ se vinculan a las bibliotecas en tiempo de ejecución de C.Por eso, estos proyectos se clasifican como aplicaciones de modo mixto, ya que combinan código nativo con código orientado a Common Language Runtime (código administrado).Cuando se compilan, la compilación se lleva a cabo en lenguaje intermedio (IL), también conocido como lenguaje intermedio de Microsoft (MSIL).

Para convertir la aplicación de modo mixto en lenguaje intermedio puro

  1. Quite los vínculos a las Bibliotecas en tiempo de ejecución de C (CRT):

    1. En el archivo .cpp que define el punto de entrada de la aplicación, cambie el punto de entrada a Main().El uso de Main() indica que el proyecto no se vincula al CRT.

    2. En el Explorador de soluciones, haga clic con el botón secundario del mouse en el proyecto y seleccione Propiedades en el menú contextual para abrir las páginas de propiedades de la aplicación.

    3. En la página de propiedades del proyecto Avanzadas para el campo Vinculador, seleccione Punto de entrada y escriba Main en este campo.

    4. Para aplicaciones de consola, seleccione el campo Subsistema en la página de propiedades de proyecto Sistema para el Vinculador y cámbielo a Consola (/SUBSYSTEM:CONSOLE).

      [!NOTA]

      No es necesario que establezca esta propiedad para aplicaciones de formularios Windows Forms porque el campo Subsistema está establecido de forma predeterminada en Windows (/SUBSYSTEM:WINDOWS).

    5. En stdafx.h, marque como comentario todas las instrucciones #include.Por ejemplo, en las aplicaciones de consola:

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

      O bien

      Por ejemplo, en las aplicaciones de formularios Windows Forms:

      // #include <stdlib.h>
      // #include <malloc.h>
      // #include <memory.h>
      // #include <tchar.h>
      
    6. Para las aplicaciones de Windows Forms, en Form1.cpp, marque como comentario la instrucción #include que hace referencia a windows.h.Por ejemplo:

      // #include <windows.h>
      
  2. Agregue el código siguiente a stdafx.h:

    #ifndef __FLTUSED__
    #define __FLTUSED__
       extern "C" __declspec(selectany) int _fltused=1;
    #endif
    
  3. Quite todos los tipos no administrados:

    1. Donde sea necesario, reemplace los tipos no administrados por referencias a estructuras desde el espacio de nombres System.Los tipos administrados más comunes se enumeran en la tabla que sigue a continuación:

      Estructura

      Descripción

      Boolean

      Representa un valor booleano.

      Byte

      Representa un entero de 8 bits sin signo.

      Char

      Representa un carácter Unicode.

      DateTime

      Representa un instante de tiempo, normalmente expresado en forma de fecha y hora del día.

      Decimal

      Representa un número decimal.

      Double

      Representa un número de punto flotante de precisión doble.

      Guid

      Representa un identificador exclusivo global (GUID).

      Int16

      Representa un entero de 16 bits con signo.

      Int32

      Representa un entero de 32 bits con signo.

      Int64

      Representa un entero de 64 bits con signo.

      IntPtr

      Tipo específico de plataforma que se utiliza para representar un puntero o un identificador.

      SByte

      Representa un entero con signo de 8 bits.

      Simple

      Representa un número de punto flotante de precisión sencilla.

      Timespan

      Representa un intervalo de tiempo.

      UInt16

      Representa un entero de 16 bits sin signo.

      UInt32

      Representa un entero de 32 bits sin signo.

      UInt64

      Representa un entero de 64 bits sin signo.

      UIntPtr

      Tipo específico de plataforma que se utiliza para representar un puntero o un identificador.

      Tipo Void

      Indica un método que devuelve un valor, es decir, el método tiene el tipo de valor devuelto void.