Freigeben über


Marshal.StringToHGlobalAnsi-Methode

Kopiert den Inhalt eines verwalteten String in den nicht verwalteten Speicher und konvertiert ihn beim Kopieren in das ANSI-Format.

Namespace: System.Runtime.InteropServices
Assembly: mscorlib (in mscorlib.dll)

Syntax

'Declaration
Public Shared Function StringToHGlobalAnsi ( _
    s As String _
) As IntPtr
'Usage
Dim s As String
Dim returnValue As IntPtr

returnValue = Marshal.StringToHGlobalAnsi(s)
public static IntPtr StringToHGlobalAnsi (
    string s
)
public:
static IntPtr StringToHGlobalAnsi (
    String^ s
)
public static IntPtr StringToHGlobalAnsi (
    String s
)
public static function StringToHGlobalAnsi (
    s : String
) : IntPtr

Parameter

  • s
    Eine zu kopierende verwaltete Zeichenfolge.

Rückgabewert

Die Adresse im nicht verwalteten Speicher, in die s kopiert wurde, oder 0 (null), wenn eine NULL-Zeichenfolge bereitgestellt wurde.

Ausnahmen

Ausnahmetyp Bedingung

OutOfMemoryException

Es ist nicht genügend Speicherplatz vorhanden.

ArgumentOutOfRangeException

Der s-Parameter übersteigt die vom Betriebssystem zugelassene maximale Länge.

Hinweise

StringToHGlobalAnsi ist hilfreich beim benutzerdefinierten Marshalling und beim Kombinieren von verwaltetem und nicht verwaltetem Code. Da diese Methode den erforderlichen nicht verwalteten Speicher für eine Zeichenfolge reserviert, müssen Sie den Speicher immer freigeben, indem Sie FreeHGlobal aufrufen. StringToHGlobalAnsi stellt die Umkehrfunktionen von Marshal.PtrToStringAnsi bereit.

Hinweis

Diese Methode verwendet SecurityAction.LinkDemand, um einen Aufruf aus nicht vertrauenswürdigem Code zu verhindern. Nur der direkte Aufrufer muss über die SecurityPermissionAttribute.UnmanagedCode-Berechtigung verfügen. Wenn der Code aus teilweise vertrauenswürdigem Code aufgerufen werden kann, dürfen Benutzereingaben nicht ohne Validierung an Methoden der Marshal-Klasse übergeben werden. Wichtige Einschränkungen bei der Verwendung des LinkDemand-Members finden Sie unter "Demand" und "LinkDemand".

Beispiel

Im folgenden Codebeispiel wird veranschaulicht, wie der Inhalt einer verwalteten String-Klasse in nicht verwalteten Speicher konvertiert wird. Anschließend wird der nicht verwaltete Speicher freigegeben.

.NET Framework-Sicherheit

Plattformen

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 unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

Siehe auch

Referenz

Marshal-Klasse
Marshal-Member
System.Runtime.InteropServices-Namespace
FreeCoTaskMem
PtrToStringAnsi