Marshal.DestroyStructure メソッド
アセンブリ: mscorlib (mscorlib.dll 内)

<ComVisibleAttribute(True)> _ Public Shared Sub DestroyStructure ( _ ptr As IntPtr, _ structuretype As Type _ )
Dim ptr As IntPtr Dim structuretype As Type Marshal.DestroyStructure(ptr, structuretype)
[ComVisibleAttribute(true)] public: static void DestroyStructure ( IntPtr ptr, Type^ structuretype )
/** @attribute ComVisibleAttribute(true) */ public static void DestroyStructure ( IntPtr ptr, Type structuretype )
ComVisibleAttribute(true) public static function DestroyStructure ( ptr : IntPtr, structuretype : Type )


このメソッドを使用すると、アンマネージ構造体の参照型フィールド (文字列など) を解放できます。フィールドとは異なり、構造体自体は値型または参照型にできます。値型のフィールド (すべて blittable) で構成される値型の構造体には、メモリ解放の対象となる参照がありません。StructureToPtr はこのメソッドを使用して、構造体が占有しているメモリを再利用するときにメモリ リークを防ぎます。
DestroyStructure は SysFreeString COM API メソッドを呼び出し、この COM API メソッドは割り当てられた文字列を解放します。SysFreeString の詳細については、MSDN ライブラリを参照してください。
Marshal クラスには、メモリ割り当て解除のメソッドとして、DestroyStructure のほか、Marshal.FreeCoTaskMem と Marshal.FreeHGlobal が用意されています。
![]() |
---|
このメソッドは SecurityAction.LinkDemand を使用して、信頼関係のないコードからの呼び出しを防ぎます。SecurityPermissionAttribute.UnmanagedCode アクセス許可は、直前の呼び出し元にのみ要求されます。信頼性が一部しか確認されていないコードから呼び出すことができるコードの場合、ユーザー入力を検証せずに Marshal クラスに渡すことは避けてください。LinkDemand メンバの使用に関する重要な制約事項については、「Demand と LinkDemand」を参照してください。 |

- SecurityPermission (アンマネージ コードを呼び出すために必要なアクセス許可)。 UnmanagedCode (関連する列挙体)。LinkDemand (セキュリティ アクション)。

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


Weblioに収録されているすべての辞書からMarshal.DestroyStructure メソッドを検索する場合は、下記のリンクをクリックしてください。

- Marshal.DestroyStructure メソッドのページへのリンク