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!

23.04.2008, 08:13
Beitrag #3

abrissbirne Offline
LVF-Stammgast
***


Beiträge: 480
Registriert seit: Aug 2007

LV2009, LV2010
2007
EN

66123
Deutschland
Unhandled exception bei Übergabe eines CArrays
' schrieb:Dann zeige doch mal denn Code. Wie ist das Array deklariert?

<div class='codetop'>CODE</div><div class='codemain' style='height:200px;white-space:pre;overflow:auto'>
#include "extcode.h"
#include <stdio.h>
#include <windows.h>
#include <mil.h>

#define DLL_EXPORT __declspec (dllexport)

typedef struct {
int32 dimSizes[2];
uInt16 Numeric[1];
} TD1;
typedef TD1 **TD1Hdl;

.
.
.

DLL_EXPORT void Fetch(TD1Hdl Array, uInt16 *FrameNumber);

void Fetch(TD1Hdl Array, uInt16 *FrameNumber)
{
if(MilGrabImageBuffer[NumberOfGrabBuffers])
{
(*Array)->dimSizes[0] = PixelY; // rows
(*Array)->dimSizes[1] = PixelX; // cols

// Check user given value.
if((*FrameNumber > NumberOfGrabBuffers) || (*FrameNumber <= 0))
MessageBox(NULL, "Your chosen Frame number is out of range.nChose a smaller value.", "Mil Hub Error", MB_ICONSTOP | MB_OK | MB_SYSTEMMODAL);
else
{
// Copy 2d buffer into an user allocated array (*Array).
MbufGet2d(MilGrabImageBuffer[*FrameNumber], 0, 0, PixelX, PixelY, &((**Array).Numeric[0])); // Pointer to first array element
if(MappGetError(M_GLOBAL, M_NULL))
MessageBox(NULL, "Error occured by getting image buffer.", "Mil Hub Error", MB_ICONSTOP | MB_OK | MB_SYSTEMMODAL);
}
}
}
</div>

' schrieb:Wie rufst Du NumericArrayResize auf?
<div class='codetop'>CODE</div><div class='codemain' style='height:200px;white-space:pre;overflow:auto'>NumericArrayResize(uW, 2L, (UHandle *) (*Array)->Numeric, SizeX*SizeY);</div>
uW = Data is an array of unsigned 16-bit integers.
2L = 2 Dimensions
UHandle = A pointer to the handle that you want to resize.
SizeX*SizeY = The new number of elements to which the handle should refer.

' schrieb:Warum hast Du beim Aufruf der MIL Funktion SizeX und SizeY aber bei der Initialisierung SizelX und SizeY?
Falls du SizelX meinst, dass war ein Tippfehler. Im code ist es richtig.

' schrieb:Bist Du sicher dass die MIL Funktion kein Padding von Rows durchführt und damit das Array effektiv zu klein ist?
Nein bin ich mir nicht. Allerdings hatte ich nie Probleme innerhalb der CIN. Da klappte das Kopieren des Puffers ohne Probleme.

' schrieb:Was für ein Bilddatentyp ist es (Integer, Float, Greyscale, RGB)?

Rolf Kalbermatter
uInt16

Danke für deine schnelle Antwort. Meine Angaben waren wohl etwas unvollständig.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Nachrichten in diesem Thema
Unhandled exception bei Übergabe eines CArrays - abrissbirne - 23.04.2008 08:13

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

Gehe zu: