Ich versuche derzeit, die P/Invoke-Funktionen von .NET zu lernen, insbesondere in F #. Eine C-Funktion, die ich aufrufen möchte, benötigt einen Parameter, der ein "Zeiger auf einen Zeiger" ist, und ich bin schwer zu finden, welcher Operator verwendet werden soll, um dies in F # darzustellen.Zeiger auf einen Zeiger in F #
Nach etwas zu lesen tun, vor allem diese blog post, ich bin zu der Annahme verleiten, dass in .NET-Sprachen, es besser ist, Zeigerparameter mit einem &
statt *
so darzustellen, dass sie ‚Pointers Managed‘ (wenn jemand könnte Klar für mich irgendwelche Anwendungsfälle, wobei ich sollte nicht mit den Managed Pointers dann wäre das auch toll!). Daher habe ich bisher &&
versucht, was falsch ist, da es ein Boolesches AND darstellt, und ich habe auch versucht **
, die die 'C' Stildarstellung eines Zeigers auf einen Zeiger entsprechen würde.
Ich glaube, dass in C#, können Sie dies in ähnlicher Weise wie die 'C' Stil, d. H. int** q;
.
Würde jemand wissen, wie man etwas Ähnliches in F # macht bitte? Besonders in extern
Definitionen.
Vielen Dank.
aktualisieren
Entschuldigt nicht präziser zu sein - das ist auf eine Struktur-Typ.
Um genau zu sein, was ich hier mache - ich versuche, die Struktur MMAL_BUFFER_HEADER_T
gefunden here für ein Projekt, das ich mit dem Raspberry Pi Camera Module arbeiten zu replizieren. Diese struct
wird dann im folgenden function verwendet. Die Adresse des Zeigers wird beim Zurückkehren von der Funktion eingestellt.
Update 2 Denken laut hier aus - würde mit System.IntPtr&
diese repräsentieren in der richtigen Art und Weise?
Zeiger auf Zeiger auf was? Wenn es 'char **' oder 'wchar_t **' ist, bekommen diese spezielle Behandlung; Wenn es etwas anderes ist, sei bitte spezifisch. – ildjarn
Vielen Dank für die Antwort - Ich habe den Beitrag jetzt aktualisiert. Es ist zu einem Strukturtyp. Vielen Dank. –
Was ist die Semantik dieses Zeigers? Funktioniert die Funktion Speicher und gibt Ihnen einen Zeiger darauf zurück? Oder ist es etwas anderes? –