「アンマネージドコード」を編集中
ナビゲーションに移動
検索に移動
この編集を取り消せます。 下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を保存して取り消しを完了してください。
最新版 | 編集中の文章 | ||
1行目: | 1行目: | ||
− | '''アンマネージドコード''' | + | '''アンマネージドコード''' (unmanaged code)とは、[[.NET Framework]]の[[共通言語基盤]]([[CLI]])で実行される[[プログラム]]([[マネージドコード]])のうち、CLIで管理されないものをいう。 |
− | + | [[CLI]]の外側で実行される[[プログラム]]([[ネイティブコード]])とイコールと思われがちだが、アンマネージドコードにはネイティブコードに加え、[[CLI]]で実行されるプログラムだが[[CLI]]の制限(安全装置)を外したものも含まれる。 | |
− | |||
− | [[.NET Framework]] | + | [[.NET Framework]]では、[[P/Invoke]]を用いて[[マネージドコード]]から[[ネイティブコード]]を呼び出すことができるが、このネイティブコード部分はアンマネージドコードとなる。 |
また、[[.NET Framework]]では、[[データ型]]のチェック機構などの実行時の安全性を向上させる機能が満載されているが、それらを無効化にした場合もアンマネージドコードである。たとえば[[C Sharp|C#]]で[[C Sharp/unsafeキーワード|unsafeキーワード]]や[[C Sharp/fixedキーワード|fixedキーワード]]を用いて、[[C言語]]ばりに[[ポインタ変数]]をもちいたり、一般的な[[ヒープ領域]]に[[動的配列]]を確保するのではなく、[[スタック領域]]に[[静的配列]]を確保したりした場合などがこれにあたる。 | また、[[.NET Framework]]では、[[データ型]]のチェック機構などの実行時の安全性を向上させる機能が満載されているが、それらを無効化にした場合もアンマネージドコードである。たとえば[[C Sharp|C#]]で[[C Sharp/unsafeキーワード|unsafeキーワード]]や[[C Sharp/fixedキーワード|fixedキーワード]]を用いて、[[C言語]]ばりに[[ポインタ変数]]をもちいたり、一般的な[[ヒープ領域]]に[[動的配列]]を確保するのではなく、[[スタック領域]]に[[静的配列]]を確保したりした場合などがこれにあたる。 | ||
14行目: | 13行目: | ||
== 参考文献 == | == 参考文献 == | ||
− | + | <references/> | |
+ | |||
+ | == 外部リンク == | ||
{{stub}} | {{stub}} |