|
Gast |
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 07.12.2009, 11:35
Titel: dll und standalone
|
 |
|
 |
|
Hi
ich hab mit matlab eine standalone programmiert. Diese optimiert Daten. Für diesen Optimierungsprozess benötige ich eine Funktion die ich im Internet gefunden habe. Diese enthält eine dll. Wenn ich nun mein programm starte und die optimierung ausführe, dann kommt diese Warning:
Warning: Calling MEX-file 'D:\work\VibroSpec\VibroSpec\snoptcmex.dll'.
MEX-files with .dll extensions will not execute in a future version of MATLAB.
Jedoch bekomme ich trotzdem das gewünschte ergebnis geliefert.
Kompiliere ich nun dieses Programm zu einer exe dann kommt diese Fehlermeldung:
Warning: Calling MEX-file 'C:\DOCUME~1\Temp\mcrCache7.9\work\prog1\snoptcmex.dll'.
MEX-files with .dll extensions will not execute in a future version of MATLAB.
??? Error using ==> snoptcmex
Undefined function or method 'mvopt' for input arguments of type 'double'.
Error in ==> snJac at 7
Error in ==> snopt at 96
Error in ==> fminconsetsnopt at 70
Error in ==> snoptim_pred2 at 164
Error in ==> calculate_prediction at 42
Error in ==> prog1>tbb_calculate_ClickedCallback at 1959
Error in ==> gui_mainfcn at 96
Error in ==> prog1 at 42
Error in ==> @(hObject,eventdata)prog1('tbb_calculate_ClickedCallback',hObject,eventdata,guidata(hObject))
??? Error while evaluation uipushtool ClickedCallback
Und leider bricht das programm an der stelle die berechnung ab.
Kann mir jemand sagen wie ich die dll einbinden kann damit die funktioniert? Oder gibt es eine Möglichkeit die dll umzuwandlen damit matlab sie erkennt?
Ich benutze Matlab 2008b. Würde es bei einer neueren Version vllt funktionieren?
Danke für eure Hilfe
|
|
|
|
|
Titus |

Forum-Meister
|
 |
Beiträge: 871
|
 |
|
 |
Anmeldedatum: 19.07.07
|
 |
|
 |
Wohnort: Aachen
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 07.12.2009, 17:15
Titel:
|
 |
Hallo,
zuerst einmal: probiere den C-Code zu bekommen, der die DLL implementiert und recompiliere sie mit mex (zumindest für die Zukunft).
Dann: schau in der Hilfe unter
MATLAB Compiler->Limitations and Restrictions->Limitations about what may be compiled->Fixing Callback Problems: Missing Functions
was man machen kann/muss, wenn Funktionen nicht mitkompiliert werden.
Ciao,
Titus
|
|
|
Gast |
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 08.12.2009, 14:03
Titel:
|
 |
Danke für den tipp.
Der fehler war, dass das dll file eine m-funktion aufgerufen hatte, diese wurde von matlab nicht automatisch erkannt und nicht eingebunden. Deshalb hat diese funktion gefehlt.
Die Warning:
Warning: Calling MEX-file 'D:\work\VibroSpec\VibroSpec\snoptcmex.dll'.
MEX-files with .dll extensions will not execute in a future version of MATLAB.
hab ich auch wegbekommen. Ich hab in einem anderen forum gelesen, dass man einfach die dll umbenennen muss in mexc32 und dann kommt diese warning nicht mehr.
Bsp: test.dll zu test.mexc32
Fragt mich nicht warum es geht oder wie aber es geht.
Gruß
|
|
|
luiscantero |

Forum-Anfänger
|
 |
Beiträge: 15
|
 |
|
 |
Anmeldedatum: 07.03.09
|
 |
|
 |
Wohnort: München
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 18.12.2009, 15:46
Titel:
|
 |
Wenn man die .dll umbenennt, kriegt man zwar die Warnung weg, es ändert aber die Tatsache nicht, dass die MEX-Datei eventuell obsolete Funktionen verwendet, die nach und nach von den Releases entfernt werden.
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2025
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|