|
|
Programmierschnittstelle mit Matlab |
|
Mixer007 |
Forum-Anfänger
|
|
Beiträge: 14
|
|
|
|
Anmeldedatum: 23.10.16
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 21.05.2017, 14:29
Titel: Programmierschnittstelle mit Matlab
|
|
Hallo,
ich hätte da eine grundsätzlich Verständnisfragen zu einer API, die man mithilfe von Matlab machen kann.
Also angenommen, ich habe eine Header-Datei und eine .dll-Datei.
In Matlab habe ich ein Skirpt vor mir, wo ich eine Funktion direkt aus dieser .dll-Datei haben will. Diese kann ich mithilfe des Befehls calllib machen oder?
Dann muss ich die Funktion nicht nochmal in Matlab ausprogrammieren. .dll-Datei ist in C# geschrieben.
Richtig so? Das ist ja auch dann der Zweck der API/Programmierschnittstelle, damit man gewisse Funktionen des originalen Programms in andere Programme einbinden kann, richtig?
Freu mich über eure Antworten!
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.448
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 21.05.2017, 15:23
Titel:
|
|
|
|
Mixer007 |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 14
|
|
|
|
Anmeldedatum: 23.10.16
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 21.05.2017, 15:48
Titel:
|
|
Hallo,
alles klar, danke dir Harald. Werde mich da einlesen.
|
|
|
Mixer007 |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 14
|
|
|
|
Anmeldedatum: 23.10.16
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 26.05.2017, 11:44
Titel:
|
|
Hallo,
ich hätte noch eine Frage: nun habe ich mal ein Skript geschrieben.
Ich bekomme die folgende Fehlermeldung:
Error using loadlibrary
No supported compiler or SDK was found. You can install the freely
available MinGW-w64 C/C++ compiler; see Install MinGW-w64 Compiler. For
more options, visit http://www.mathworks.com/support/compilers/R2017a/.
Nun habe ich versucht MinGW-w64 zu installieren und bekomme folgende Fehlermeldung:
There was a problem installing the support package. To resolve this issue, contact Technical Support
Was kann ich tun?
|
|
|
Andreas Goser |
Forum-Meister
|
|
Beiträge: 3.654
|
|
|
|
Anmeldedatum: 04.12.08
|
|
|
|
Wohnort: Ismaning
|
|
|
|
Version: 1.0
|
|
|
|
|
|
Verfasst am: 26.05.2017, 13:20
Titel:
|
|
Den MathWorks Technischen Support - hier spezifisch das Team Installationssupport - erreicht man über 089/45235-6700, Option 4, dann 1.
Andreas
|
|
|
Mixer007 |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 14
|
|
|
|
Anmeldedatum: 23.10.16
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 26.05.2017, 15:14
Titel:
|
|
|
|
|
So,
ich habe nun Microsoft Visual Studio 2017 installiert und nochmals probiert.
Nach dem Neustart hat es nun endlich geklappt.
Allerdings bekomme ich nun wegen meinem Skript andere Fehler, so dass es nicht läuft.
Melde mich hier nochmal. Ich hoffe, ihr könnt mir da weiterhelfen.
EDIT:
ich bekomme ganz viele Fehlermeldungen der Sorte hier:
Function pointer types are unsupported in structures HRESULT ( * QueryInterface )( IBlockingLock * .
Found on line 44457 of input from line 13498 of file C:/ProgramData/MATLAB/SupportPackages/R2017a/MW_MinGW_4_9/x86_64-w64-mingw32/include/objidl.h
dann welche so :
Failed to parse type '( __cdecl__ )) DI_GetCameraCount ( PINT32 count' original input '( __cdecl__ )) DI_GetCameraCount ( PINT32 count '
Found on line 63519 of input from line 92 of file C:\\Users\\use\Desktop\\Bildverarbeitung.h
Error parsing argument for function __attribute__ function may be invalid.
und auch welche von der Art:
Bildverarbeitung_thunk_pcwin64.c:303:1: note: in expansion of macro 'EXPORT_EXTERN_C'
EXPORT_EXTERN_C int32_T int32(__cdecl__))DI_ReleaseImage(HIMAGEhandleThunk(void fcn(),const
char *callstack,int stacksize)
Wieso kommt sowas?
|
|
|
Jan S |
Moderator
|
|
Beiträge: 11.057
|
|
|
|
Anmeldedatum: 08.07.10
|
|
|
|
Wohnort: Heidelberg
|
|
|
|
Version: 2009a, 2016b
|
|
|
|
|
|
Verfasst am: 28.05.2017, 16:08
Titel:
|
|
Hallo Mixer007,
Ohne den Code zu sehen und ohne zu wissen, was Du eigentlich machst, kann man nicht erraten, woher die Meldungen stammen.
Gruß, Jan
|
|
|
Mixer007 |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 14
|
|
|
|
Anmeldedatum: 23.10.16
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 01.06.2017, 09:49
Titel:
|
|
Hallo,
mittlerweile hab ich das obige Problem selbst behoben.
Bekomme aber leider diese Fehlermeldung:
Warning: Name is nonexistent or not a directory: C:\Programme\users\IMage
> In path (line 109)
In Bildverarbeitung_LoadDLL (line 19)
In Bildverarbeitung_GetCameras (line 17)
In Bildverabreitung-Interface
Error using Bildverarbeitung_LoadDLL (line 22)
Please copy all Bildverarbeitung.dll and Bildverarbeitung.h to the same folder as "IMage.exe" (usually
"C:\Program Files\users\IMage\").
Aber meine .dll-Datei und Header Datei befindet sich in dem Verzeichnis.
Trotzdem gibt mir Matlab eine Fehlermeldung aus. Wieso?
|
|
|
Mixer007 |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 14
|
|
|
|
Anmeldedatum: 23.10.16
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 06.07.2017, 13:02
Titel:
|
|
|
|
|
Hallo,
vielleicht kann mir eventuell hier jemand helfen.
Ich hab ein Problem mit einer DLL-Datei. Ich kann sie nämlich nicht laden.
Ich bekomme folgende Fehlermeldung:
Warning: Message from C preprocessor:
C:\Program Files\... warning: #pragma once in main file
#pragma once
^
> In loadlibrary
In MI_LoadDLL (line 25)
Zunächst kommt das.
Später bekomme ich ganz viele Fehlermeldungen der folgenden Art:
Function pointer types are unsupported in structures HRESULT ( * QueryInterface )( ILayoutStorage * .
Found on line 44385 of input from line 13358 of file C:/ProgramData/MATLAB/SupportPackages/R2017a/MW_MinGW_4_9/x86_64-w64-mingw32/include/objidl.h
und folgende:
Failed to parse type '( __cdecl__ )) MI_HasLastError (' original input '( __cdecl__ )) MI_HasLastError ('
Found on line 63515 of input from line 88 of file C:\\Program Files\\...
Error parsing argument for function __attribute__ function may be invalid.
Liegt das vielleicht am Compiler? Meine DLL-Datei ist nämlich in C# geschrieben glaub ich.
Was ich versuche ist die DLL- Datei zu laden, um später dann Funktionen aus ihr in Matlab verwenden zu können.
Skript dazu:
if libisloaded('DLL-Datei')
Success = 1;
else
Success = 0;
% Looking for the necessary files.
path(path,'C:\..\');
if exist('Datei.dll','file')==0 || exist('Datei.h','file')==0
error(['Please copy all Datei.dll and Daatei.h to the same folder as "Programm.exe" (usually "C:\...\").']);
end;
% Loading the library.
disp('Loading Datei.dll ...')
[notfound, warnings] = loadlibrary('Datei', 'Datei.h');
if libisloaded('Datei')
Success = 1;
end;
end
|
|
|
|
|
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 - 2024
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.
|
|