Qual é a função real da configuração do projeto C # “Permitir código inseguro”

StackOverflow https://stackoverflow.com/questions/233759

Pergunta

Eu queria saber se a definição do projeto C # "Permitir código inseguro" aplica-se apenas ao código inseguro C # no próprio projeto, ou é necessário definir esta opção quando ligar em um ++ DLL nativa C? O que sobre a vinculação de uma DLL gerenciada que se liga a uma DLL nativa? O que faz esta opção realmente, sob a capa?

Foi útil?

Solução

Tem a ver com a palavra chave "inseguro" em C #. "inseguros" desliga todas as verificações que normalmente acontecem e permitem acessar diretamente a memória. ele não se refere a chamar ou interfaces de ++ DLL nativa C.

Outras dicas

Ele permite que você use o bloco de "inseguro".

unsafe(...)
{
}

Isso só diz respeito ao uso de blocos unsafe (onde ponteiros podem ser usados). Ele não governa P / Invoke.

A sua necessário usar o contexto inseguro {}. Ela costumava ser obrigado a usar sizeof (), mas em versões posteriores que não é verdade.

Você não precisa permitir que o código inseguro se você está externing para outro DLL escrito em outro idioma como C.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top