Compartilhar via


Converting Projects from Mixed Mode to Pure Intermediate Language

Todos os projetos Visual C++ CLR links para bibliotecas em tempo de execução de C por padrão.Portanto, esses projetos são classificados como aplicativos de modo misto, porque combina o código nativo com o código que acessam o common language runtime (código gerenciado).Quando são compilados, são compilados em linguagem intermediária (IL), também conhecido como o Microsoft intermediate language (MSIL).

Para converter o seu aplicativo de modo misto em linguagem intermediária puro

  1. Remova os links a Bibliotecas em tempo de execução de C (CRT):

    1. No arquivo de .cpp que define o ponto de entrada do seu aplicativo, altere o ponto de entrada a Main().Usar Main() indica que o projeto não contém links para CRT.

    2. No solution Explorer, clique com o botão direito do mouse e selecione Propriedades no menu de atalho para abrir as páginas de propriedades para seu aplicativo.

    3. Na página propriedades de projeto de Avançado para Vinculador, selecione Ponto de entrada e entre em Principal neste campo.

    4. Para aplicativos de console, na página propriedades de projeto de Sistema para Vinculador, selecione o campo de SubSystem e alterar isso ao Console (/SUBSYSTEM:CONSOLE).

      ObservaçãoObservação

      Você não precisa definir essa propriedade para aplicativos de formulários do Windows porque o campo de SubSystem é definido como Windows (/SUBSYSTEM:WINDOWS) por padrão.

    5. Em stdafx.h comentários, para fora todas as instruções de #include .Por exemplo, aplicativos de console:

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

      -  ou  -

      Por exemplo, em aplicativos de formulários do Windows:

      // #include <stdlib.h>
      // #include <malloc.h>
      // #include <memory.h>
      // #include <tchar.h>
      
    6. Para aplicativos de formulários do Windows, em Form1.cpp, comente a declaração de #include que referencia windows.h.Por exemplo:

      // #include <windows.h>
      
  2. Adicione o seguinte código a stdafx.h:

    #ifndef __FLTUSED__
    #define __FLTUSED__
       extern "C" __declspec(selectany) int _fltused=1;
    #endif
    
  3. Remova todos os tipos não gerenciado:

    1. Onde apropriado, substitua tipos não gerenciado com as referências às estruturas de namespace de O sistema .Os tipos gerenciados comuns são listados na tabela a seguir:

      Estrutura

      Descrição

      Booleano

      Representa um valor Booleano.

      Byte

      Representa um inteiro de 8 bits sem sinal.

      Char

      Representa um caractere Unicode.

      DateTime

      Representa um momento no tempo, normalmente expresso como uma data e hora.

      Decimal

      Representa um número decimal.

      Double

      Representa um número de ponto flutuante de precisão dupla.

      Guid

      Representa um identificador exclusivo (GUID).

      Int16

      Representa um número inteiro de 16 bits com sinal.

      Int32

      Representa um número inteiro de 32 bits com sinal.

      Int64

      Representa um número inteiro de 64 bits com sinal.

      IntPtr

      Um tipo específico (que é usado para representar um ponteiro ou um identificador.

      SByte

      Representa um inteiro de 8 bits com sinal.

      Single

      Representa um número de ponto flutuante de precisão simples.

      Período

      Representa um intervalo de tempo.

      UInt16

      Representa um número inteiro de 16 bits sem sinal.

      UInt32

      Representa um inteiro de 32 bits sem sinal.

      UInt64

      Representa um número inteiro de 64 bits sem sinal.

      UIntPtr

      Um tipo específico (que é usado para representar um ponteiro ou um identificador.

      Vácuo

      Indica um método que não retorna um valor; isto é, o método tem o tipo de retorno vago.