INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Unhandled exception bei Übergabe eines CArrays



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

22.04.2008, 20:36
Beitrag #2

rolfk Offline
LVF-Guru
*****


Beiträge: 2.317
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
Unhandled exception bei Übergabe eines CArrays
' schrieb:Hallo Community,
ich bin dabei einen funktionierenden C-Code für CIN in eine DLL umzustricken. Soweit funktioniert das auch recht schön. Allerdings gibt es bei dem wichtigsten Teil des Skriptes ein Problem. Ich kann die gewonnenen Kameradaten nicht an LabVIEW übergeben. Ich verwende für die Datenaufnahme die Matrox Imaging Library. Dazu dürftet ihr in diesem Forum schon den ein oder anderen Eintrag von mir findenWink2
Ich grabbe also Bilder von einer Kamera und speichere diese in einen MIL-Puffer. Nun bietet mir MIL die Möglichkeit die Daten des MIL Arrays in ein eigens angelegtes Array zu kopieren. Die Funktion sieht also folgendermaßen aus:
<div class='codetop'>CODE</div><div class='codemain' style='height:200px;white-space:pre;overflow:auto'>MbufGet2d(MilImageBuffer, 0, 0, SizeX, SizeY, &((**Array).Numeric[0])) </div>
0 steht hier für Offset (in X- und Y-Richtung)
SizeX, SizeY = Auflösung
Zum Schluß wird ein Pointer auf das Zielarray erwartet. Diese Zeile funktioniert innerhalb der CIN, aber in der DLL erzeugt sie folgende Fehlermeldung:
<div class='codetop'>CODE</div><div class='codemain' style='height:200px;white-space:pre;overflow:auto'>Unhandled exception at 0x01225BAE in LabVIEW.exe: 0xC0000005:
Access violation reading location 0x1xxxxxxx</div>

Meine Vermutung ist das ich die Array-Initialisierung nicht korrekt durchführe. Innerhalb der CIN habe ich dafür NumericArrayResize genutzt. Innerhalb der DLL mache ich es so:
<div class='codetop'>CODE</div><div class='codemain' style='height:200px;white-space:pre;overflow:auto'>(*Array)->dimSizes[0] = SizeY; //Rows
(*Array)->dimSizes[1] = SizelX; //Cols</div>

Wenn ich diese Codezeilen ausführe wird meine Arraygröße auf SizeY und SizeX innerhalb von LabVIEW erweitert. Ich glaube trotzdem das hier mein Problem liegt. Für Hilfestellung bin ich sehr Dankbar.

Dann zeige doch mal denn Code. Wie ist das Array deklariert? Wie rufst Du NumericArrayResize auf? Warum hast Du beim Aufruf der MIL Funktion SizeX und SizeY aber bei der Initialisierung SizelX und SizeY? Bist Du sicher dass die MIL Funktion kein Padding von Rows durchführt und damit das Array effektiv zu klein ist? Was für ein Bilddatentyp ist es (Integer, Float, Greyscale, RGB)?

Rolf Kalbermatter

Rolf Kalbermatter
Technische Universität Delft, Dienst Elektronik und Mechanik
https://blog.kalbermatter.nl
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Nachrichten in diesem Thema
Unhandled exception bei Übergabe eines CArrays - rolfk - 22.04.2008 20:36

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  DLL mit String Nullpointer Übergabe Hubert R. 5 6.796 25.08.2023 11:43
Letzter Beitrag: rolfk
  Übergabe eines struct arrays an eine DDL und wieder Auslesen SK-AC 4 7.917 12.08.2010 17:01
Letzter Beitrag: rolfk
  Mehrere Cuda DLLs Context-Übergabe grey 2 6.632 17.06.2010 19:50
Letzter Beitrag: rolfk
  LV 7.1, VC++-DLL (VC++2008), string-Übergabe ptillmann 1 5.475 12.03.2010 20:34
Letzter Beitrag: rolfk
  Exception "Catch" DaniH 6 8.232 08.02.2010 00:55
Letzter Beitrag: rolfk
  Übergabe eines C Array abrissbirne 1 5.357 13.04.2008 22:12
Letzter Beitrag: rolfk

Gehe zu: