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 

Array mit unbekannter Größe übergeben



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!

28.05.2008, 07:26 (Dieser Beitrag wurde zuletzt bearbeitet: 28.05.2008 07:32 von Curtis Newton.)
Beitrag #1

Curtis Newton Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 132
Registriert seit: Apr 2008

8.5
2008
de

14***
Deutschland
Array mit unbekannter Größe übergeben
Hallo,

ich habe eine Funktion in einer dll, die sieht grundlegend so aus:
int dllfunc(short *dst, int widht, int height)
Die Funktion allokiert den Speicher und gibt dessen Größe zurück. Diese Funktion kann man ja so in LabVIEW nicht verwenden. Ich könnt sie aber umschreiben. Aber wie mach ich es am besten? width und height kenne ich vor Aufruf der Funktion nicht (könnte ich aber zur Not ermitteln). Also vorher das Array erstellen und dann an die Funktion übergeben? Wie macht man sowas?

Ich wäre einfach über einen Hinweis, wie man da am besten herangeht, dankbar.

C.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
28.05.2008, 08:42
Beitrag #2

Curtis Newton Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 132
Registriert seit: Apr 2008

8.5
2008
de

14***
Deutschland
Array mit unbekannter Größe übergeben
Ich habe jetzt bei NI ein Beispiel gefunden:

http://zone.ni.com/devzone/cda/epd/p/id/2242

So scheints zu gehen. Hier wird MoveBlock benutzt. Die löschen aber am Ende den durch die DLL allokierten Speicher nicht. Das ist ja unsauber. Aber mit dem Beispiel werde ich es wohl hinkriegen.

C.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.05.2008, 08:46
Beitrag #3

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
Array mit unbekannter Größe übergeben
' schrieb:Ich habe jetzt bei NI ein Beispiel gefunden:

http://zone.ni.com/devzone/cda/epd/p/id/2242

So scheints zu gehen. Hier wird MoveBlock benutzt. Die löschen aber am Ende den durch die DLL allokierten Speicher nicht. Das ist ja unsauber. Aber mit dem Beispiel werde ich es wohl hinkriegen.

C.
MoveBlock findest du auch hier im Forum.

UND:

Wenn die DLL den Speicher alloziert, dann muss sie ihn auch freigeben. (Gibt es dafür nicht einen Aufruf in deiner DLL?). Das kann die LV-Speicherverwaltung nicht leisten.

MfG, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.05.2008, 10:19
Beitrag #4

Curtis Newton Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 132
Registriert seit: Apr 2008

8.5
2008
de

14***
Deutschland
Array mit unbekannter Größe übergeben
Jupp. so werde ich es machen.

Danke!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.05.2008, 11:11
Beitrag #5

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
Array mit unbekannter Größe übergeben
Nachtrag: Wenn du es andersherum machen willst (i.e. LV stellt Array bereit und du übergibst per per Pointer), dann kannst du per "Initialize Array" ein Array passender Größe vordefinieren, dass du dann an die DLL übergibst. Oder ein FP-Control per Resize-Array auf richtige Größe bringen und übergeben.

MfG, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
31.05.2008, 09:37
Beitrag #6

rolfk Offline
LVF-Guru
*****


Beiträge: 2.302
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
Array mit unbekannter Größe übergeben
' schrieb:Hallo,

ich habe eine Funktion in einer dll, die sieht grundlegend so aus:
int dllfunc(short *dst, int widht, int height)
Die Funktion allokiert den Speicher und gibt dessen Größe zurück. Diese Funktion kann man ja so in LabVIEW nicht verwenden. Ich könnt sie aber umschreiben. Aber wie mach ich es am besten? width und height kenne ich vor Aufruf der Funktion nicht (könnte ich aber zur Not ermitteln). Also vorher das Array erstellen und dann an die Funktion übergeben? Wie macht man sowas?

Ich wäre einfach über einen Hinweis, wie man da am besten herangeht, dankbar.

C.

Also wie gibt die DLL hier den Speicher zurück? Ich sehe keinen Parameter wo die DLL den allozierten Speicher zurückgeben könnte.

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
Anzeige
03.06.2008, 13:04
Beitrag #7

Curtis Newton Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 132
Registriert seit: Apr 2008

8.5
2008
de

14***
Deutschland
Array mit unbekannter Größe übergeben
Na ich habe einfach noch eine Funktion geschrieben:
void __stdcall CleanMemory(short *p_sData);
Einziges Problem war noch, dass der Datentyp Uint32 ist (also ein 32-bitiger Zeiger), der dann immer übergeben wird.

C.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Einbinden externen Code mit unbekannter Parameterstruktur ghostwhisperer 12 10.879 21.12.2009 09:24
Letzter Beitrag: rolfk
  LabVIEW Array an C++ DLL übergeben Flagman 8 9.868 03.05.2009 11:54
Letzter Beitrag: rolfk
  Lab VIEW DLL in C# 2D Array an Lab VIEW übergeben Gortosch 2 6.069 02.06.2008 16:05
Letzter Beitrag: Gortosch
  2 Dimen. Array an Dll übergeben calimero 2 4.996 06.12.2005 13:16
Letzter Beitrag: Winzler

Gehe zu: