4271

Mathematica 10.4 - Verwenden von Arrays, die in einer DLL erzeugt wurden

Erläuterung

Verwenden von Arrays, die in einer DLL erzeugt wurden

Mit DefineDLLFunction kann man von Mathematica aus auf Funktionen in binären DLLs zugreifen.
Für einfache Datentypen wie Double oder Integer bereitet das keine Probleme und ist im .NET/Link User Guide ausführlich beschrieben.

Beim Verwenden von Arrays, die in der DLL alloziiert wurden, müssen allerdings einige Dinge beachtet werden. Da Mathematica für DefineDLLFunction den sogenannten P/Invoke-Mechanismus von .NET. verwendet, entspricht die Vorgehensweise in Mathematica prinzipiell der in .NET. Wie in .NET müssen einige zusätzliche .NET-Objekte benutzt werden, die für die Handhabung von Pointern und Speicherbereichen notwendig sind.

Das folgende Beispiel enthält eine einfache C-DLL mit 2 Funktionen zum Erzeugen bzw. Freigeben von
Arrays und ein Mathematica-Notebook, in dem diese Funktionen verwendet und der Inhalt des erzeugten Arrays angezeigt wird.