¿Cuál es la función real de la configuración del proyecto C # "Permitir código inseguro"
Pregunta
Me preguntaba si la configuración del proyecto C # " Permitir código no seguro " solo se aplica al código C # inseguro en el proyecto en sí, o ¿es necesario configurar esta opción cuando se vincula en una DLL nativa de C ++? ¿Qué pasa con la vinculación en una DLL administrada que se vincula a una DLL nativa? ¿Qué hace realmente esta opción, bajo el capó?
Solución
Tiene que ver con el " inseguro " palabra clave en C #. " inseguro " desactiva todas las comprobaciones que normalmente sucederían y le permite acceder directamente a la memoria. no se refiere a llamar a DLL o interfaces C ++ nativas.
Otros consejos
Le permite usar el " inseguro " bloque.
unsafe(...)
{
}
Esto solo se relaciona con el uso de bloques inseguros
(donde se pueden usar punteros). No rige P / Invocar.
Es necesario usar el contexto inseguro {}. Solía ??ser necesario usar sizeof () pero en versiones posteriores ya no es cierto.
No necesita permitir código inseguro si está exterminando a otra DLL escrita en otro idioma como C.