Frage

Ich wollte einen c # -Code in j # konvertieren und habe es irgendwie geschafft, über dllimport und Marschälle hinwegzukommen.

Problem ist, wenn eine Funktion einen Verweis auf ein Objekt hat - ref wird nicht erkannt

public static native int Mathod (Referenztyp, int-Flags);

Jeder hat Erfahrung mit j # und weiß, wie man Referenzen an eine Methode sendet (oder einen Typ in einer Methode als Referenz definiert)

War es hilfreich?

Lösung

Ich bin mir ziemlich sicher, dass Sie dies nicht direkt tun können.

In real Java und vermutlich auch in J # wird alles als Wert übergeben.

In neueren Versionen von Java können Sie die Einschränkung mithilfe von AtomicReference umgehen, aber ich bezweifle sehr, dass J # aktuell genug ist, um dies zu unterstützen.

Sie können versuchen, die Methodensignatur so zu ändern, dass sie ein generisches Codacetagcode-Array mit einem Element akzeptiert, und dieses Array-Element dann mutieren.Auf diese Weise können Sie ein ähnliches Ergebnis wie bei Type[] erzielen.Der Nachteil ist, dass Sie die Aufrufstelle und die Methode selbst ändern müssen, um die Variable im Array zu verpacken und zu entpacken.(Obwohl Sie Ihren eigenen benutzerdefinierten Typ erstellen können, um das Ein- und Auspacken zu kapseln, wenn dies die Dinge vereinfacht.)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top