Freigeben über


Marshal.PtrToStringBSTR-Methode

Reserviert einen verwalteten String und kopiert eine BSTR-Zeichenfolge aus dem nicht verwalteten Speicher hinein.

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

Syntax

'Declaration
Public Shared Function PtrToStringBSTR ( _
    ptr As IntPtr _
) As String
'Usage
Dim ptr As IntPtr
Dim returnValue As String

returnValue = Marshal.PtrToStringBSTR(ptr)
public static string PtrToStringBSTR (
    IntPtr ptr
)
public:
static String^ PtrToStringBSTR (
    IntPtr ptr
)
public static String PtrToStringBSTR (
    IntPtr ptr
)
public static function PtrToStringBSTR (
    ptr : IntPtr
) : String

Parameter

  • ptr
    Die Adresse des ersten Zeichens der nicht verwalteten Zeichenfolge.

Rückgabewert

Eine verwaltete Zeichenfolge, die eine Kopie der systemeigenen Zeichenfolge enthält, wenn der Wert des ptr-Parameters nicht NULL (Nothing in Visual Basic) ist. Andernfalls gibt diese Methode NULL (Nothing in Visual Basic) zurück.

Hinweise

Rufen Sie diese Methode nur für Zeichenfolgen auf, die mit der nicht verwalteten SysAllocString-Funktion und der nicht verwalteten SysAllocStringLen-Funktion reserviert wurden.

PtrToStringBSTR ist hilfreich beim benutzerdefinierten Marshalling und beim Kombinieren von verwaltetem und nicht verwaltetem Code. Da diese Methode eine Kopie des Inhalts der nicht verwalteten Zeichenfolge erstellt, müssen Sie die ursprüngliche Zeichenfolge ggf. freigeben. Diese Methode stellt die Umkehrfunktion von Marshal.StringToBSTR 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".

.NET Framework-Sicherheit

Plattformen

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, 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

.NET Compact Framework

Unterstützt in: 2.0

Siehe auch

Referenz

Marshal-Klasse
Marshal-Member
System.Runtime.InteropServices-Namespace
StringToBSTR