Partilhar via


managed e unmanagedpragma

Habilite o controle no nível da função para compilar funções gerenciadas ou não gerenciadas.

Sintaxe

#pragma managed
#pragma unmanaged
#pragma managed( [ push, ] { on | off } )
#pragma managed(pop)

Comentários

A opção de compilador /clr fornece controle no nível do módulo para compilar funções gerenciadas ou não gerenciadas.

Uma função não gerenciada é compilada para a plataforma nativa. A execução dessa parte do programa será passada para a plataforma nativa pelo common language runtime.

As funções são compiladas como gerenciadas por padrão quando /clr é usada.

Ao aplicar um managed ou unmanagedpragma:

  • Adicione o pragma que precede uma função, mas não dentro de um corpo de função.

  • Adicione o pragma após #include instruções. Não o use antes de #include declarações.

O compilador ignora o managed e unmanagedpragma se /clr não for usado na compilação.

Quando uma função de modelo é instanciada, o estado pragma quando o modelo é definido determina se ele é gerenciado ou não gerenciado.

Para obter mais informações, consulte Inicialização de assemblies mistos.

Exemplo

// pragma_directives_managed_unmanaged.cpp
// compile with: /clr
#include <stdio.h>

// func1 is managed
void func1() {
   System::Console::WriteLine("In managed function.");
}

// #pragma unmanaged
// push managed state on to stack and set unmanaged state
#pragma managed(push, off)

// func2 is unmanaged
void func2() {
   printf("In unmanaged function.\n");
}

// #pragma managed
#pragma managed(pop)

// main is managed
int main() {
   func1();
   func2();
}
In managed function.
In unmanaged function.

Ver também

diretivas Pragma e as palavras-chave __pragma e _Pragma