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

Bool Pointer

 

janh
Forum-Anfänger

Forum-Anfänger


Beiträge: 21
Anmeldedatum: 26.03.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.06.2014, 17:21     Titel: Bool Pointer
  Antworten mit Zitat      
Hallo zusammen,

ich bräuchte eure Hilfe. Die Suche im Forum und die Matlab-Hilfe haben leider nix ergeben.

Und zwar möchte ich an eine Funktion eine Pointer vom Typ bool übergeben.


Vielen Dank


Gruß

Jan
Private Nachricht senden Benutzer-Profile anzeigen


janh
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 21
Anmeldedatum: 26.03.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.06.2014, 08:58     Titel:
  Antworten mit Zitat      
Weil ich habe eine DLL-Datei mit einer Funktion.

Die Funktion in der Dll heißt:

Code:
void myButtons(bool *ButtonBlue bool *ButtonRed)
 


Die Dll wird in Matlab aufgefrufen:

Code:
loadliberay('mydll.dll', mydll.h')


Aufruf der Funktion in Matlab

Code:
calllib('mydll', ButtonBlue, ButtonRed)


Die beiden Argumente müssen ja Pointer vom Typ Bool sein. Leider habe ich in Matlab keine Typ Bool gefunden. Oder täusche ich mich da?
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 21.06.2014, 09:30     Titel:
  Antworten mit Zitat      
Hallo,

versuchs mal mit logical-Variablen.

Wenn das nicht klappt, würde ich den Weg über Mex-Functions vorschlagen (vorausgesetzt du hast den C-Code).

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 21
Anmeldedatum: 26.03.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.06.2014, 10:25     Titel:
  Antworten mit Zitat      
Hi Harald,

werds mal mit der logical-Variablen probieren.

Ich habe bloss die DLL-Datei und die HEADER-Datei. Würd das reichen?
Private Nachricht senden Benutzer-Profile anzeigen
 
janh
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 21
Anmeldedatum: 26.03.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.06.2014, 10:52     Titel:
  Antworten mit Zitat      
Habs mit logical-Variablen versucht:

Code:


calllib('myDll','logical', ButtonBlue, ButtonRed)

 


Mit dieser Felhermeldung:

Data type not found


oder so

Code:


blue = logical(ButtonBlue)
red = logical(ButtonRed)

calllib('myDll','int16Ptr', blue, red)

 


Mit dieser Felhermeldung:

Pointer type must macht the data type
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

schau dir mal libpointer und lib.pointer an sowie
http://www.mathworks.com/help/matla.....ed-library-functions.html

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 21
Anmeldedatum: 26.03.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.06.2014, 14:24     Titel:
  Antworten mit Zitat      
Hab die libpointer und lib.pointer angeschaut, hat mir aber leider ned geholfen.

Hab bloss das gefunden:

Zitat:
Set Size and Type of lib.pointer Output Variable


Ich bräucht das vor dem Aufruf.
Private Nachricht senden Benutzer-Profile anzeigen
 
janh
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 21
Anmeldedatum: 26.03.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.06.2014, 17:09     Titel:
  Antworten mit Zitat      
Eigentlich brauch ich doch bloss eine Variable die selbe Größe wie die Variable Bool hat.

Die Variable Bool hat in C++ eine Größe von 1 Byte. In Matlab hat int8 auch ein Byte.

Habs dann so probiert:
Code:
ptrButton = libpointer('int8')


Es kommt aber immer noch diese Fehlermeldung

Pointer type must macht the data type
Private Nachricht senden Benutzer-Profile anzeigen
 
janh
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 21
Anmeldedatum: 26.03.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.06.2014, 14:01     Titel:
  Antworten mit Zitat      
Habe gerade mit mex-Function umprobiert, leider auch ohne Ergebnis.

Hat jemand vielleicht noch eine Idee?
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.