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
Quite los vínculos a las Bibliotecas en tiempo de ejecución de C (CRT):
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.
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.
En la página de propiedades del proyecto Avanzadas para el campo Vinculador, seleccione Punto de entrada y escriba Main en este campo.
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).
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>
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>
Agregue el código siguiente a stdafx.h:
#ifndef __FLTUSED__ #define __FLTUSED__ extern "C" __declspec(selectany) int _fltused=1; #endif
Quite todos los tipos no administrados:
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
Representa un valor booleano.
Representa un entero de 8 bits sin signo.
Representa un carácter Unicode.
Representa un instante de tiempo, normalmente expresado en forma de fecha y hora del día.
Representa un número decimal.
Representa un número de punto flotante de precisión doble.
Representa un identificador exclusivo global (GUID).
Representa un entero de 16 bits con signo.
Representa un entero de 32 bits con signo.
Representa un entero de 64 bits con signo.
Tipo específico de plataforma que se utiliza para representar un puntero o un identificador.
Representa un entero con signo de 8 bits.
Representa un número de punto flotante de precisión sencilla.
Representa un intervalo de tiempo.
Representa un entero de 16 bits sin signo.
Representa un entero de 32 bits sin signo.
Representa un entero de 64 bits sin signo.
Tipo específico de plataforma que se utiliza para representar un puntero o un identificador.
Indica un método que devuelve un valor, es decir, el método tiene el tipo de valor devuelto void.