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

Matlab 2008a und DLLs - hat jemand bereit Erfahrungen?

 

joekey
Forum-Century

Forum-Century


Beiträge: 169
Anmeldedatum: 03.04.08
Wohnort: Wien
Version: 2011b
     Beitrag Verfasst am: 09.05.2008, 09:41     Titel: Matlab 2008a und DLLs - hat jemand bereit Erfahrungen?
  Antworten mit Zitat      
Hallo,

ich teste gerade Matlab 2008a. Ich kann ohne Probleme eine DLL laden (loadlibrary). Allerdings kommt es zu einem Matlab-Absturz nach dem ich eine DLL-Funktion aufrufe (calllib).

In Matlab 2007b funktioniert das Laden der DLL und auch Aufrufen der Funktionen ohne Probleme.

Es hätte mich interessiert ob ihr ähnliche Erfahrungen habts?
Hat es sich etwas an der Art des DLL-Ladeprozesses in 2008a gegenüber dem 2007b geendert?
Oder vielleicht etwas beim Aufrufen der DLL-Funktionen?

Solltet ihr keine Probleme haben, liegt es an der DLL-die ich benutze. Könnte mir jemand eine DLL-Bibliothek die mit Matlab 2008a funktioniert hat zuschicken? Ich würde es gern austesten.

Ich bedanke mich im Voraus.

LG Joe
Private Nachricht senden Benutzer-Profile anzeigen


joekey
Themenstarter

Forum-Century

Forum-Century


Beiträge: 169
Anmeldedatum: 03.04.08
Wohnort: Wien
Version: 2011b
     Beitrag Verfasst am: 15.05.2008, 16:10     Titel:
  Antworten mit Zitat      
Hallo,

das Problem wurde gelösst.

http://www.mathworks.com/matlabcent.....view_thread/169037#431782

LG Joe Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
mburnicki
Forum-Newbie

Forum-Newbie


Beiträge: 1
Anmeldedatum: 15.05.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.05.2008, 16:24     Titel:
  Antworten mit Zitat      
Hi,

ich bin eigentlich kein Matlab-Anwender, sondern Maintainer einer DLL, die das Auslesen von Daten von unseren PCI-Karten ermöglicht:
http://www.meinberg.de/german/products/formfactor.htm#slot_card

Einer unserer Kunden hatte ebenfalls das Problem, dass der Rechner komplett abgestürzt ist, wenn er eine DLL-Funktion aufgerufen hat, die über einen Pointer auf eine Struktur 'PCPS_HR_TIME' Daten von der Karte zurückliefern sollte.

Als Grund dafür stellte sich heraus, dass die Instruction libstruct('PCPS_HR_TIME') nur ein leeres Objekt anlegt, welches durch einen NULL-Pointer referenziert wird. Wenn dieser NULL-Pointer an die DLL-Funktion übergeben wird und der Kernel-Treiber über diesen Pointer Daten speichert, crasht das System.

Abhilfe schaffte es, das mit libstruct('PCPS_HR_TIME') angelegte Objekt explizit zu initialisieren. Dadurch reserviert Matlab offensichtlich den erforderlichen Speicher, so dass ein gültiger Pointer an die DLL-Funktion übergeben wird.

Code:

hrTime = libstruct('PCPS_HR_TIME');
% The instruction above just creates a pointer to an object, without
% actually allocating some memory for the object. This results in a
% NULL pointer which lets the system trap if is is passed to the
% DLL function and the driver writes some data via that pointer.
%
% Memory for that object is allocated if one of the members of the
% object is set to an initial value, e.g. using the instruction below:
hrTime.tstamp.sec = 0;
% Now the hrTime pointer addresses some real memory,and the DLL
% call succeeds when the driver fills up that memory with the expected
% data:
retcode = calllib('libIrig','mbg_get_hr_time', handle, hrTime);
 


Wie schon gesagt, ich bin Anfänger mit Matlab und habe nur eine aktuelle Trial-Version 7.6.0 (R2008a) zur Verfügung.

HTH,
Martin
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.