|
|
Matlab 2008a und DLLs - hat jemand bereit Erfahrungen? |
|
joekey |
Forum-Century
|
|
Beiträge: 169
|
|
|
|
Anmeldedatum: 03.04.08
|
|
|
|
Wohnort: Wien
|
|
|
|
Version: 2011b
|
|
|
|
|
|
Verfasst am: 09.05.2008, 09:41
Titel: Matlab 2008a und DLLs - hat jemand bereit Erfahrungen?
|
|
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
|
|
|
|
|
joekey |
Themenstarter
Forum-Century
|
|
Beiträge: 169
|
|
|
|
Anmeldedatum: 03.04.08
|
|
|
|
Wohnort: Wien
|
|
|
|
Version: 2011b
|
|
|
|
|
|
Verfasst am: 15.05.2008, 16:10
Titel:
|
|
|
|
mburnicki |
Forum-Newbie
|
|
Beiträge: 1
|
|
|
|
Anmeldedatum: 15.05.08
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 15.05.2008, 16:24
Titel:
|
|
|
|
|
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.
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
|
|
|
|
|
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.
|
|