Evaluar y enviar comentarios
Contraer todo/Expandir todo Contraer todo
Esta página es específica de
Microsoft Visual Studio 2005/.NET Framework 2.0

Hay además otras versiones disponibles para:
Biblioteca de clases de .NET Framework
Marshal.FreeHGlobal (Método)

Libera memoria previamente asignada de la memoria no administrada del proceso mediante el método AllocHGlobal.

Espacio de nombres: System.Runtime.InteropServices
Ensamblado: mscorlib (en mscorlib.dll)

Visual Basic (Declaración)
Public Shared Sub FreeHGlobal ( _
    hglobal As IntPtr _
)
Visual Basic (Uso)
Dim hglobal As IntPtr

Marshal.FreeHGlobal(hglobal)
C#
public static void FreeHGlobal (
    IntPtr hglobal
)
C++
public:
static void FreeHGlobal (
    IntPtr hglobal
)
J#
public static void FreeHGlobal (
    IntPtr hglobal
)
JScript
public static function FreeHGlobal (
    hglobal : IntPtr
)

Parámetros

hglobal

Controlador devuelto por la llamada coincidente original a AllocHGlobal.

Puede utilizar FreeHGlobal para liberar cualquier memoria del montón global asignada mediante el método AllocHGlobal, ReAllocHGlobal o cualquier método API no administrado equivalente. Si el parámetro hglobal es referencia de objeto null (Nothing en Visual Basic), el método no realiza ninguna operación.

FreeHGlobal expone la función LocalFree de Kernel32.DLL, que libera todos los bytes, por lo que ya no se puede utilizar la memoria a la que apunta hglobal. Para obtener más información sobre LocalFree, vea MSDN Library.

Además de FreeHGlobal, la clase Marshal proporciona otros dos métodos API de desasignación de memoria: DestroyStructure y FreeCoTaskMem.

NotaNota

Este método utiliza SecurityAction.LinkDemand para evitar que se le llame desde código que no sea de confianza; sólo el llamador inmediato debe disponer del permiso SecurityPermissionAttribute.UnmanagedCode. Si se puede llamar al código desde código de confianza parcial, no pase ninguna entrada de usuario a los métodos de la clase Marshal sin validación. Para conocer las limitaciones importantes que existen a la hora de utilizar el miembro LinkDemand, vea Demand frente a LinkDemand.

Nota de la plataforma Windows 95, Windows 98, Windows 98 segunda edición, Windows Millennium: Si se pasa un valor de identificador no válido a FreeHGlobal se produce una excepción ArgumentException.

En el siguiente ejemplo de código se muestra la forma de llamar al método FreeHGlobal. Este ejemplo de código forma parte de un ejemplo más extenso referente a la clase Marshal.

C#
// Demonstrate how to call GlobalAlloc and 
// GlobalFree using the Marshal class.
IntPtr hglobal = Marshal.AllocHGlobal(100);
Marshal.FreeHGlobal(hglobal);
C++
// Demonstrate how to call GlobalAlloc and 
// GlobalFree using the Marshal class.
IntPtr hglobal = Marshal::AllocHGlobal(100);
Marshal::FreeHGlobal(hglobal);

En el siguiente ejemplo de código se muestra cómo convertir el contenido de una clase String administrada a memoria no administrada y, a continuación, desechar la memoria no administrada cuando haya terminado.

Windows 98, Windows 2000 SP4, Windows Millennium, Windows Server 2003, Windows XP Media Center, Windows XP Professional x64, Windows XP SP2, Windows XP Starter Edition

.NET Framework no admite todas las versiones de cada plataforma. Para obtener una lista de las versiones admitidas, vea Requisitos del sistema.

.NET Framework

Compatible con: 2.0, 1.1, 1.0

.NET Compact Framework

Compatible con: 2.0
Contenido de la comunidad   ¿Qué es Community Content?
Agregar contenido nuevo RSS  Anotaciones
Processing
© 2012 Microsoft. Reservados todos los derechos. Términos de uso | Marcas Registradas | Privacidad
Page view tracker