2016-07-20 16 views
0

Kürzlich tauche ich in Matlab und erweitern es mit C++ - Code. Bis jetzt hatte ich ein wenig Erfolg mit dem Beispiel timestwo kompilieren es zu einer mex-Datei über die integrierten Mex-Befehle sowie vorkompilierte Form mit Visual Studio 2015. Was ich bin wirklich neugierig zu entdecken ist, ob es tatsächlich möglich ist bündeln Sie mehrere s-functions in einem einzigen Modul.Ist es möglich, mehrere s-Funktionen in einer einzigen mex/dll zu kombinieren?

Idealerweise hätte ich gerne ein einzelnes Modul, das zwischen 10-20 Routinen handgeschriebenen Codes enthalten könnte, so dass dieser Code in einer gemeinsamen Toolbox verwendet werden könnte. Was ich nicht herausfinden konnte, ist, wie Sie Matlab dazu zwingen, nach der Funktion in einer bestimmten DLL zu suchen, es scheint immer den 'Funktionsnamen' als DLL-Namen zu verwenden. Gibt es Tipps oder Beispiele zu einem Multifunktions-Setup?

Antwort

0

Sie können mehrere s-Funktionen nicht in einer einzigen Bibliothek bündeln. Um Code zu teilen, müssen Sie die gemeinsamen Funktionen als separate Bibliothek kompilieren und dann können Sie dieselbe Bibliothek mit jeder s-Funktion verknüpfen. Die gemeinsam genutzte Bibliothek kann je nach Design entweder statisch oder dynamisch sein. Sie müssen sicherstellen, dass die gesamte Speicherzuweisung für eine Instanz von s-function von s-function möglicherweise als DWorks ausgeführt wird und den Speicher dann an freigegebene Funktionen für zusätzliche Arbeit weitergibt.