WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Programmierschnittstelle mit Matlab

 

Mixer007
Forum-Anfänger

Forum-Anfänger


Beiträge: 14
Anmeldedatum: 23.10.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.05.2017, 14:29     Titel: Programmierschnittstelle mit Matlab
  Antworten mit Zitat      
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!
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 21.05.2017, 15:23     Titel:
  Antworten mit Zitat      
Hallo,

alles soweit gut, außer:
loadlib ist für C/C++ - shared Libraries, nicht C#.

Für C# / .NET würde ich hierzu raten:
https://www.mathworks.com/help/matl.....-libraries-in-matlab.html

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Mixer007
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 14
Anmeldedatum: 23.10.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.05.2017, 15:48     Titel:
  Antworten mit Zitat      
Hallo,

alles klar, danke dir Harald. Werde mich da einlesen.
Private Nachricht senden Benutzer-Profile anzeigen
 
Mixer007
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 14
Anmeldedatum: 23.10.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.05.2017, 11:44     Titel:
  Antworten mit Zitat      
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?
Private Nachricht senden Benutzer-Profile anzeigen
 
Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 26.05.2017, 13:20     Titel:
  Antworten mit Zitat      
Den MathWorks Technischen Support - hier spezifisch das Team Installationssupport - erreicht man über 089/45235-6700, Option 4, dann 1.

Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Mixer007
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 14
Anmeldedatum: 23.10.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.05.2017, 15:14     Titel:
  Antworten mit Zitat      
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?
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 28.05.2017, 16:08     Titel:
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen
 
Mixer007
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 14
Anmeldedatum: 23.10.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.06.2017, 09:49     Titel:
  Antworten mit Zitat      
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?
Private Nachricht senden Benutzer-Profile anzeigen
 
Mixer007
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 14
Anmeldedatum: 23.10.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.07.2017, 13:02     Titel:
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button 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.