8

C# プロジェクト設定の [安全でないコードを許可する] がプロジェクト自体の安全でない C# コードにのみ適用されるのか、それともネイティブ C++ DLL でリンクするときにこのオプションを設定する必要があるのか​​疑問に思っていました。それ自体がネイティブ DLL にリンクするマネージ DLL 内でのリンクについてはどうでしょうか。このオプションは、内部で実際に何をするのでしょうか?

4

4 に答える 4

11

これは、C# の "unsafe" キーワードに関係しています。「安全でない」は、通常発生するすべてのチェックをオフにし、メモリに直接アクセスできるようにします。ネイティブ C++ DLL またはインターフェイスの呼び出しについては言及していません。

于 2008-10-24T14:29:10.423 に答える
7

「安全でない」ブロックを使用できます。

unsafe(...)
{
}
于 2008-10-24T14:28:56.837 に答える
6

これは、unsafeブロックの使用 (ポインターを使用できる場所) に関連しています。P/Invoke は制御しません。

于 2008-10-24T14:29:23.577 に答える
4

安全でない { } コンテキストを使用する必要があります。以前は sizeof() を使用する必要がありましたが、後のバージョンではそうではなくなりました。

C などの別の言語で記述された別の DLL に外部接続している場合は、安全でないコードを許可する必要はありません。

于 2008-10-24T14:29:00.940 に答える