Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
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
#includeinstruções. Não o use antes de#includedeclaraçõ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.