3

これまでのところ 100% 管理されている .NET ライブラリを開発しています。ここで、いくつかの win32 呼び出しを使用する必要があります。

私が知る必要があるのは、.NET ライブラリがアンマネージと呼ばれるのはいつですか? アセンブリにアンマネージ コードがある場合、またはアセンブリ内のアンマネージ コードが実行される場合

4

2 に答える 2

2

これらの管理されていないwin32呼び出しを行った後、コードが適切にクリーンアップされる限り、ライブラリは管理されます。

于 2012-11-12T10:45:25.570 に答える
2

100%マネージコードを書いていると思いますが、実際には.NET Frameworkの要点を掘り下げてみると、それでもアンマネージコードが呼び出されます。ILSpyまたは.NETReflectorを使用して、DllImportまたはexternメソッド呼び出しを見つけてください。.NETがすべてのJIT、セキュリティ、ガベージコレクションなどを実行しているため、アセンブリ自体が管理されます。アセンブリ内のオブジェクトに。.NETがアンマネージ関数(Win32など)を呼び出す時点で、.NETはコードを制御できなくなったため、これはアンマネージです。

管理されていないコードのインポートを「管理」する方法を学ぶことをお勧めします。相互運用可能な呼び出しが完了したら、.NETが可能な限りクリーンアップできるように、相互運用可能な呼び出しをラップする必要があります。

プラットフォーム呼び出しの使用方法については、こちらをご覧ください。

http://msdn.microsoft.com/en-us/library/aa288468%28v=vs.71%29.aspx

于 2012-11-12T10:46:10.090 に答える