Marshal.DestroyStructure Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Sobrecargas
| Name | Description |
|---|---|
| DestroyStructure(IntPtr, Type) |
Obsoleto.
Liberta todas as subestruturas para as quais o bloco de memória não gerida especificado aponta. |
| DestroyStructure<T>(IntPtr) |
Liberta todas as subestruturas de um tipo especificado para onde aponta o bloco de memória não gerida especificado. |
DestroyStructure(IntPtr, Type)
Atenção
DestroyStructure(IntPtr, Type) may be unavailable in future releases. Instead, use DestroyStructure<T>(IntPtr). For more info, go to http://go.microsoft.com/fwlink/?LinkID=296520
Liberta todas as subestruturas para as quais o bloco de memória não gerida especificado aponta.
public:
static void DestroyStructure(IntPtr ptr, Type ^ structuretype);
[System.Obsolete("DestroyStructure(IntPtr, Type) may be unavailable in future releases. Instead, use DestroyStructure<T>(IntPtr). For more info, go to http://go.microsoft.com/fwlink/?LinkID=296520")]
[System.Security.SecurityCritical]
public static void DestroyStructure(IntPtr ptr, Type structuretype);
public static void DestroyStructure(IntPtr ptr, Type structuretype);
[System.Runtime.InteropServices.ComVisible(true)]
public static void DestroyStructure(IntPtr ptr, Type structuretype);
[System.Security.SecurityCritical]
[System.Runtime.InteropServices.ComVisible(true)]
public static void DestroyStructure(IntPtr ptr, Type structuretype);
[System.Security.SecurityCritical]
public static void DestroyStructure(IntPtr ptr, Type structuretype);
[<System.Obsolete("DestroyStructure(IntPtr, Type) may be unavailable in future releases. Instead, use DestroyStructure<T>(IntPtr). For more info, go to http://go.microsoft.com/fwlink/?LinkID=296520")>]
[<System.Security.SecurityCritical>]
static member DestroyStructure : nativeint * Type -> unit
static member DestroyStructure : nativeint * Type -> unit
[<System.Runtime.InteropServices.ComVisible(true)>]
static member DestroyStructure : nativeint * Type -> unit
[<System.Security.SecurityCritical>]
[<System.Runtime.InteropServices.ComVisible(true)>]
static member DestroyStructure : nativeint * Type -> unit
[<System.Security.SecurityCritical>]
static member DestroyStructure : nativeint * Type -> unit
Public Shared Sub DestroyStructure (ptr As IntPtr, structuretype As Type)
Parâmetros
- ptr
-
IntPtr
nativeint
Um apontador para um bloco de memória não gerido.
- structuretype
- Type
Tipo de aula formatada. Isto fornece a informação de layout necessária para eliminar o buffer no ptr parâmetro.
- Atributos
Exceções
structuretype tem um layout automático. Use sequencial ou explícito em vez disso.
Observações
Pode usar este método para libertar campos de referência, como strings, de uma estrutura não gerida. Ao contrário dos seus campos, uma estrutura pode ser um tipo de valor ou um tipo de referência. Estruturas de tipo valor que contêm campos de tipo valor (todos blitáveis) não têm referências cuja memória deve ser libertada. O Marshal.StructureToPtr método utiliza este método para evitar fugas de memória ao reutilizar memória ocupada por uma estrutura.
DestroyStructure chama a função COM SysFreeString , que, por sua vez, liberta uma cadeia alocada.
Além de DestroyStructure, a Marshal classe fornece outros dois métodos de deslocação de memória: FreeCoTaskMem e FreeHGlobal.
Ver também
Aplica-se a
DestroyStructure<T>(IntPtr)
Liberta todas as subestruturas de um tipo especificado para onde aponta o bloco de memória não gerida especificado.
public:
generic <typename T>
static void DestroyStructure(IntPtr ptr);
[System.Security.SecurityCritical]
public static void DestroyStructure<T>(IntPtr ptr);
public static void DestroyStructure<T>(IntPtr ptr);
[<System.Security.SecurityCritical>]
static member DestroyStructure : nativeint -> unit
static member DestroyStructure : nativeint -> unit
Public Shared Sub DestroyStructure(Of T) (ptr As IntPtr)
Parâmetros de Tipo Genérico
- T
O tipo da estrutura formatada. Isto fornece a informação de layout necessária para eliminar o buffer no ptr parâmetro.
Parâmetros
- ptr
-
IntPtr
nativeint
Um apontador para um bloco de memória não gerido.
- Atributos
Exceções
T tem um layout automático. Use sequencial ou explícito em vez disso.
Observações
Pode usar este método para referenciar livremente campos de tipos, como strings, de uma estrutura não gerida. Ao contrário dos seus campos, uma estrutura pode ser um tipo de valor ou um tipo de referência. Estruturas de tipos de valor que contêm campos de tipo de valor (todos blitáveis) não têm referências cuja memória deve ser libertada. O Marshal.StructureToPtr método utiliza este método para evitar fugas de memória ao reutilizar memória ocupada por uma estrutura.
DestroyStructure chama a função COM SysFreeString , que, por sua vez, liberta uma cadeia alocada.