Wie würde diese C-API-Deklaration in C # importiert?
%Vor%Ich bin soweit gekommen:
%Vor%Natürlich wird in C # das "void *" nicht kompiliert.
Googling gibt an, dass es als "Objekt" übersetzt werden soll. Was scheint, sollte es funktionieren. Andere geben jedoch an, dass "Void * in C / C ++ - Begriffen als Funktionszeiger bezeichnet wird, der in C # -Ausdrücken ein Delegierter ist". Das macht hier keinen großen Sinn, an was würde es delegieren? Einige ähnliche Aufrufe für andere APIs, die beim Googlen gefunden werden, verwenden andere Funktionen in der jeweiligen API. Aber in dieser API wäre kein anderer Aufruf sinnvoll.
Die Dokumentation zum Aufruf zeigt ein Beispiel:
%Vor%Was zu zeigen scheint, dass sogar ein statischer Wert übergeben werden könnte.
Es wird mit dem Objekt anstelle des void * kompiliert. Ich weiß nicht, ob das richtig ist und ich hatte keine Gelegenheit, es zu testen (Lizenzproblem).
Sie können void * auch verwenden, wenn Sie Ihre Klasse als unsicher markieren.
Es hängt wirklich davon ab, nach was die API in diesem Parameter sucht.
Sie können IntPtr oder Object * hinzufügen, um an den Compiler zu kommen, aber Sie müssen ihm trotzdem die richtigen Daten übergeben, wenn Sie ihn aufrufen.
Soweit ich feststellen kann, ist die C-Deklaration von z4ctyget:
%Vor%Der zweite Parameter ist eine 5-stellige ANSI-Zeichenfolge, die die Postleitzahl angibt, bei der Sie die Suche starten möchten, oder "00000", um am Anfang der Datei zu beginnen. Ihre Deklaration sollte also lauten:
%Vor%