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

C++ in Matlab (MexFile) und dll Probleme Fehler C4251

 

baronsocke
Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 21.05.14
Wohnort: Köln
Version: ---
     Beitrag Verfasst am: 30.07.2014, 18:09     Titel: C++ in Matlab (MexFile) und dll Probleme Fehler C4251
  Antworten mit Zitat      
Hallo zusammen!

Ich schreibe an meiner Bachelorarbeit. Dafür muss ich aus Matlab (Version R2014a, 32bit) eine externe Lichtquelle ansteuern, deren API in C++ geschrieben ist. Die gesamte API und alle dafür benötigten Dateien habe ich von der Firma erhalten und installiert.

Für die Ansteuerung schreibe ich ein MexFile, in dem ich c++ schreiben kann. Ich habe das Mex-File grob geschrieben und möchte es kompilieren. Die API ist mit dem Microsoft Visual C++ 2012 (64/32 bit) entwickelt worden. Ich benutze den entsprechenden Microsoft Visual 2012 Compiler.
Beim Compilieren bekomme ich aber eine Fehlermeldung, wo ich einfach nicht dahinter steige.

„class ‚std::shared_ptr<_Ty> ‚ erfordert eine DLL-Schnittstelle, die von Clients von class … verwendet wird“

(siehe Bild im Anhang)

Kleiner Hinweis: In der Header Datei ist "std::shared_ptr<_Ty>" unter "private" deklariert.

ich weiß aber nicht, welche dll Schnittstelle er nicht findet und ich weiß einfach nicht, was ich ändern kann.
Die entsprechenden mitgelieferten Header Dateien habe ich alle über #include eingebunden.

Kennst jemand dieses Problem? Was kann man tun? Ich habe schon so viel im Internet recherchiert, aber nichts nützliches gefunden. Ich bin auch kein c++ Programmierer und mir kommt der größte Teil wie Hyroglyphen vor. Da wird mal von dllImport oder dllExport gesprochen… Aber ich habe die fertigen dlls ja von der Firma bekommen und die haben mir versichert, dass alles komplett ist. Eigene dlls brauche ich ja somit nicht zu schreiben. Den Fehlercode C4251 habe ich auch gegoogelt. Ein paar Leute haben das auch schon mal gegoogelt. Aber als nicht Programmierer verstehe ich das nicht:(

Das ganze mache ich an einem Windows 7 Rechner mit 64bit System. Die API der Firma ist auch für ein 64 bit System geschrieben. Das ganze haben wir auch schon mit einer 64bit-Matlab Version getestet, aber es kommt der gleiche dll Fehler.

Muss ich vielleicht noch irgendwas includieren? oder was mit def oder so?

Vielleicht hat jemand eine zündende Idee? Dafür wäre ich dir sehr sehr dankbar.


Viele Grüße

Fehlermeldung_dll.PNG
 Beschreibung:

Download
 Dateiname:  Fehlermeldung_dll.PNG
 Dateigröße:  23.34 KB
 Heruntergeladen:  267 mal
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 - 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.