Marshallen von Klassen, Strukturen und Unions

Klassen und Strukturen weisen in .NET Framework Ähnlichkeiten auf. Beide können über Felder, Eigenschaften und Ereignisse verfügen. sowie über statische und nicht statische Methoden verfügen. Einen wichtigen Unterschied stellt jedoch die Tatsache dar, dass Strukturen Werttypen und Klassen Verweistypen sind.

In der folgenden Tabelle finden Sie Marshalloptionen für Klassen, Strukturen und Unions, eine Beschreibung ihrer Verwendung sowie einen Link zum entsprechenden Plattformaufrufbeispiel.

Typ

Beschreibung

Beispiel

Klasse durch einen Wert.

Übergibt eine Klasse mit Ganzzahlmembern als In/Out-Parameter, wie der verwaltete Fall.

SysTime

Struktur durch einen Wert.

Übergibt Strukturen als In-Parameter.

Strukturen

Struktur durch einen Verweis.

Übergibt Strukturen als In/Out-Parameter.

OSInfo

Struktur mit geschachtelten Strukturen (vereinfacht).

Übergibt eine Klasse, die eine Struktur mit geschachtelten Strukturen in der nicht verwalteten Funktion darstellt. Die Struktur wird im verwalteten Prototyp zu einer einzigen großen Struktur vereinfacht.

FindFile

Struktur mit geschachtelten Strukturen (nicht vereinfacht).

Übergibt eine Struktur mit einer eingebetteten Struktur.

Strukturen

Struktur mit einem Zeiger auf eine andere Struktur.

Übergibt eine Struktur, die einen Zeiger auf eine weitere Struktur enthält, als Member.

Strukturen

Array von Strukturen mit Ganzzahlen durch einen Wert.

Übergibt ein Array von Strukturen, die nur Ganzzahlen enthalten, als In/Out-Parameter. Member des Arrays können geändert werden.

Arrays

Array von Strukturen mit Ganzzahlen und Zeichenfolgen durch einen Wert.

Übergibt ein Array von Strukturen, die Ganzzahlen und Zeichenfolgen enthalten, als Out-Parameter. Die aufgerufene Funktion belegt Speicher für das Array.

OutArrayOfStructs

Unions mit Werttypen.

Übergibt Unions mit Werttypen (integer und double).

Unions

Unions mit gemischten Typen.

Übergibt Unions mit gemischten Typen (integer und string).

Unions

NULL -Werte in Struktur.

Übergibt einen NULL-Verweis (in Visual Basic Nothing) anstelle eines Verweises auf einen Werttyp.

HandleRef

Siehe auch

Konzepte

Datentypen für den Plattformaufruf

Marshallen von Zeichenfolgen

Marshallen von Typenarrays

Verschiedene Marshallingbeispiele

Weitere Ressourcen

Marshallen von Daten mit Plattformaufruf