Frage

Ich frage mich, ob die C # Projekteinstellung „unsicherer Code zuläßt“ nur auf unsicher C # -Code in dem Projekt selbst, oder ist es notwendig, setzen Sie diese Option bei der Verknüpfung in einem nativen C ++ DLL gilt? Was ist in einer verwalteten DLL verknüpft, das sich zu einer nativen DLL verknüpft? Was bedeutet diese Option wirklich tun, unter der Haube?

War es hilfreich?

Lösung

Es hat mit dem „unsicheren“ Schlüsselwort in C # zu tun. „Unsicher“ dreht sich alle Prüfungen aus, die normalerweise geschehen würde, und ermöglicht es Ihnen, direkt auf den Speicher zugreifen. es bezieht sich nicht native C ++ DLL oder Schnittstellen zu nennen.

Andere Tipps

Es ermöglicht Ihnen, den "unsicheren" Block zu verwenden.

unsafe(...)
{
}

Dies bezieht sich nur auf die Verwendung von unsafe Blöcke (wo Zeiger kann verwendet werden). Es ist nicht regieren P / Invoke.

Es ist notwendig, den unsicheren {} Kontext zu verwenden. Früher erforderlich sizeof () zu verwenden, aber in späteren Versionen, die nicht mehr wahr ist.

Sie müssen keine unsicheren Code ermöglichen, wenn Sie in einer anderen Sprache wie C auf eine andere DLL geschrieben werden externing.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top