Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Faktoren wie Garbage Collection und Threading können das Verhalten des Interop-Marshallers beeinflussen. Darüber hinaus können kleine Unterschiede bei der Programmierung und zwischen den Typmodellen die Übergabe von Daten an eine nicht verwaltete Bibliothek verkomplizieren. Dieser Abschnitt enthält Beispiele, in denen einige dieser Unterschiede zum Tragen kommen.
In der folgenden Tabelle finden Sie Marshalloptionen für verschiedene Elementtypen, eine Beschreibung ihrer Verwendung sowie einen Link zum entsprechenden Beispiel.
Elementtyp |
Beschreibung |
Beispiel |
|---|---|---|
Funktionszeiger |
Übergibt einen Delegaten an eine nicht verwaltete Funktion, die einen Funktionszeiger erwartet. |
|
Verwendet die HandleRef-Struktur, um die Garbage Collection zu verhindern. |
||
LPARAM |
Verwendet die GCHandle-Struktur, um ein verwaltetes Objekt an eine nicht verwaltete Funktion zu übergeben, die einen LPARAM-Typ erwartet. |
|
Singlethread-Apartment (STA)/Multithread-Apartment (MTA) |
Ändert die Standardeinstellungen für Apartments, wenn eine nicht verwaltete Funktion CoInitialize aufruft. |
|
void* |
Ruft eine Funktion auf, die den Parameter void* besitzt. |
Siehe auch
Konzepte
Datentypen für den Plattformaufruf
Marshallen von Klassen, Strukturen und Unions