Partilhar via


Convertendo projetos do modo misto em linguagem intermediária pura

Todos os projetos do Visual C++ CLR vinculam a bibliotecas de tempo de execução C por padrão. Consequentemente, esses projetos são classificados como aplicativos de modo misto, porque combinam o código nativo com o código que se destinam Common Language Runtime (código gerenciado). Quando são criados, serão criados em linguagem intermediária (IL), também conhecido como a linguagem intermediária da Microsoft (MSIL).

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

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

    1. No arquivo .cpp que define o ponto de entrada de seu aplicativo, altere o ponto de entrada para Main(). Usar Main() indica que o projeto não está vinculada ao CRT.

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

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

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

      Dica

      Não defina essa propriedade para aplicativos Windows Forms como o campo de SubSystem é definido como Windows (/SUBSYSTEM:WINDOWS) por padrão.

    5. Em stdafx.h, comentam out todas as instruções de #include . Por exemplo, nos aplicativos do console:

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

      - ou -

      Por exemplo, em aplicativos do Windows Forms:

      // #include <stdlib.h>
      // #include <malloc.h>
      // #include <memory.h>
      // #include <tchar.h>
      
    6. Para aplicativos Windows Forms, em Form1.cpp, a utilização de comentários para fora da instrução #include que referencia windows.h. Por exemplo:

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

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

    1. Onde apropriada, substitua tipos não gerenciados por referências às estruturas de namespace de O sistema . Os tipos gerenciados comuns são listados na seguinte tabela:

      Estrutura

      Descrição

      Booleano

      Representa um valor booliano.

      Byte

      Representa um inteiro não assinado de 8 bits.

      Char

      Representa um caractere Unicode.

      DateTime

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

      Decimal

      Representa um número decimal.

      Double

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

      Guid

      Representa um GUID (identificador global exclusivo).

      Int16

      Representa um inteiro com sinal de 16 bits.

      Int32

      Representa um inteiro com sinal de 32 bits.

      Int64

      Representa um inteiro com sinal de 64 bits.

      IntPtr

      Um tipo de plataforma específica que é usada para representar um ponteiro ou um identificador.

      SByte

      Representa um inteiro com sinal de 8 bits.

      Single

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

      TimeSpan

      Representa um intervalo de tempo.

      UInt16

      Representa um inteiro não assinado de 16 bits.

      UInt32

      Representa um inteiro não assinado de 32 bits.

      UInt64

      Representa um inteiro não assinado de 64 bits.

      UIntPtr

      Um tipo de plataforma específica que é usada para representar um ponteiro ou um identificador.

      Nulo

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