Какова действительная функция настройки проекта C # & # 8220; Разрешить небезопасный код & # 8221;

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

Вопрос

Мне было интересно, есть ли в проекте C # параметр "Разрешить небезопасный код"? применяется только к небезопасному коду C # в самом проекте, или необходимо установить эту опцию при компоновке в собственной C ++ DLL? Как насчет связи в управляемой DLL, которая сама ссылается на собственную DLL? Что на самом деле делает этот вариант, под капотом?

Это было полезно?

Решение

Это связано с «небезопасным» Ключевое слово в C #. & Quot; небезопасным & Quot; отключает все проверки, которые обычно происходят, и позволяет получить прямой доступ к памяти. это не относится к вызову собственных C ++ DLL или интерфейсов.

Другие советы

Позволяет использовать «небезопасно» блок.

unsafe(...)
{
}

Это относится только к использованию блоков unsafe (где могут использоваться указатели). Это не относится к P / Invoke.

Необходимо использовать небезопасный контекст {}. Раньше требовалось использовать sizeof (), но в более поздних версиях это уже не так.

Вам не нужно разрешать небезопасный код, если вы подключаетесь к другой библиотеке DLL, написанной на другом языке, например C.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top