Freigeben über


Marshal.StringToCoTaskMemAuto-Methode: (String)

 

Veröffentlicht: Oktober 2016

Kopiert den Inhalt eines verwalteten String in einen Speicherblock, der von der nicht verwalteten Speicherbelegung für COM-Aufgaben reserviert wurde.

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

Syntax

[SecurityCriticalAttribute]
public static IntPtr StringToCoTaskMemAuto(
    string s
)
public:
[SecurityCriticalAttribute]
static IntPtr StringToCoTaskMemAuto(
    String^ s
)
[<SecurityCriticalAttribute>]
static member StringToCoTaskMemAuto : 
        s:string -> nativeint
<SecurityCriticalAttribute>
Public Shared Function StringToCoTaskMemAuto (
    s As String
) As IntPtr

Parameter

  • s
    Type: System.String

    Eine zu kopierende verwaltete Zeichenfolge.

Rückgabewert

Type: System.IntPtr

Der reservierte Speicherblock oder 0, wenn s gleich null ist.

Ausnahmen

Exception Condition
OutOfMemoryException

Es ist nicht genügend Arbeitsspeicher verfügbar.

ArgumentOutOfRangeException

Die Länge für s liegt außerhalb des Bereichs.

Hinweise

StringToCoTaskMemAuto eignet sich für die benutzerdefinierten Marshalling oder beim Kombinieren von verwaltetem und nicht verwaltetem Code. Da diese Methode den nicht verwalteten Speicher für eine Zeichenfolge erforderlich belegt wird, müssen Sie den Speicher immer freigeben, durch Aufrufen von FreeCoTaskMem. Diese Methode stellt die Umkehrfunktionen der Marshal.PtrToStringAuto.

Die Zeichen der Zeichenfolge werden als ANSI oder Unicode-Zeichen, je nach Betriebssystem kopiert, in dem der Code ausgeführt wird. Unter Windows 98 werden die Zeichen als ANSI-Zeichen kopiert. Unter Windows NT 4.0, Windows 2000, Windows XP und Windows Server 2003-Produktfamilie werden die Zeichen als Unicode-Zeichen kopiert.

Sicherheit

SecurityCriticalAttribute

requires full trust for the immediate caller. This member cannot be used by partially trusted or transparent code.

Versionsinformationen

.NET Framework
Verfügbar seit 1.1

Siehe auch

PtrToStringAuto
Marshal-Klasse
System.Runtime.InteropServices-Namespace

Zurück zum Anfang