09.12.2015, 14:05
Beitrag #1
|
Lars_Tragl
LVF-Grünschnabel
Beiträge: 13
Registriert seit: Apr 2014
2012
2014
DE
|
Speicherprobleme mit DLL ?
Hallo,
ich binde eine DLL über LabVIEW ein.
Dieser wird ein Array übergeben, bisher 700 Felder groß.
Die DLL ruft dieses mit char* im Funktionsaufruf auf, arbeitet intern damit und befüllt es.
Da ich ziemlich viele Nachrichten abgreife, reichen mir die 700 Felder nicht mehr.
Wenn ich auf 1000 erhöhe, schmiert mir LabVIEW ab. Fehlermeldung 0xC0000005
Hat jemand Erfahrung damit ?
Wie könnte ich das ganze umgehen?
Funktionsaufruf ca. void Funktion(...., char* buffer, .....)
Vielen Dank für Tipps und Ratschläge
|
|
|
09.12.2015, 16:19
Beitrag #2
|
|
|
11.12.2015, 09:50
Beitrag #3
|
|
|
11.12.2015, 10:03
Beitrag #4
|
GerdW
______________
Beiträge: 17.469
Registriert seit: May 2009
LV2021
1995
DE_EN
10×××
Deutschland
|
RE: Speicherprobleme mit DLL ?
Hallo Lars,
Zitat:Das Array hat wie gesagt zum jetzigen Zeitpunkt 700 Felder.
Welches "Array"?
Wo werden die "700 Felder" (du meinst wahrscheinlich "Elemente") angelegt?
Zitat:Daher wird doch eigl auch der Speicher schon in LabVIEW alloziiert?
Eigentlich schon. Nur sieht man das in deinem Bild nicht…
|
|
|
11.12.2015, 10:27
Beitrag #5
|
Lars_Tragl
LVF-Grünschnabel
Beiträge: 13
Registriert seit: Apr 2014
2012
2014
DE
|
RE: Speicherprobleme mit DLL ?
Hey Gerd,
sorry habs vergessen hinzu zuschreiben.
Betroffen ist der Receive Buffer.
Hab jetzt über einen Sniffer die Größe rausbekommen und es funktioniert.
Das Array braucht mind. 4000 Felder.
Vielen Dank für eure Hilfe!
Grüße
|
|
|
11.12.2015, 10:33
(Dieser Beitrag wurde zuletzt bearbeitet: 11.12.2015 10:34 von GerdW.)
Beitrag #6
|
GerdW
______________
Beiträge: 17.469
Registriert seit: May 2009
LV2021
1995
DE_EN
10×××
Deutschland
|
RE: Speicherprobleme mit DLL ?
Hallo Lars,
Zitat:Betroffen ist der Receive Buffer.
Hab jetzt über einen Sniffer die Größe rausbekommen und es funktioniert.
Das Array braucht mind. 4000 Felder.
Wenn man statt eines Controls die InitArray-Funktion verwenden würde, könnte man sowas auch anhand eines Bildes des BD erkennen…
Frage zu deinem VI: warum die ganzen lokalen Variables? Warum keine Drähte?
|
|
|
11.12.2015, 10:44
Beitrag #7
|
Lars_Tragl
LVF-Grünschnabel
Beiträge: 13
Registriert seit: Apr 2014
2012
2014
DE
|
RE: Speicherprobleme mit DLL ?
Sorry bin in vielen Sachen nicht so tief drin in LabVIEW. Was meinst du mit Drähten?
|
|
|
11.12.2015, 10:49
Beitrag #8
|
GerdW
______________
Beiträge: 17.469
Registriert seit: May 2009
LV2021
1995
DE_EN
10×××
Deutschland
|
RE: Speicherprobleme mit DLL ?
Hallo Lars,
Draht = Verbindungslinie zwischen LabVIEW-Funktionen/-Elementen im Blockdiagramm…
Du hast die ganzen Links in meiner Signatur bemerkt?
|
|
|
11.12.2015, 10:52
Beitrag #9
|
Lars_Tragl
LVF-Grünschnabel
Beiträge: 13
Registriert seit: Apr 2014
2012
2014
DE
|
RE: Speicherprobleme mit DLL ?
Sorry jetzt weiß ich was du meinst!
Die lokalen Variablen kommen später wieder weg. Ist gerade drinnen um zu sehen, ob der richtige Befehl zusammengesetzt wird.
|
|
|
11.12.2015, 11:12
|
jg
CLA & CLED
Beiträge: 15.864
Registriert seit: Jun 2005
20xx / 8.x
1999
EN
Franken...
Deutschland
|
RE: Speicherprobleme mit DLL ?
Zwecks lokaler Variablen: Wenn ich mich richtig an deinen anderen Thread erinnere, dann ist die DLL auch von dir. Wieso muss an diese DLL 2x dieselbe Info übergeben werden (1x in dem zusammengesetzten Array, 1x als Einzel-Eingänge)?
Zwecks Arraygröße 4000 anstatt 1000 ist nötig? Hört sich so an, als ob du in deiner DLL irgendwann mit U32 anstatt U8 arbeitest...
Gruß, 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.
|
|
|
| |