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 

Fehlermeldung nach Exe-Ende mit User32.dll



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!

09.04.2010, 11:43
Beitrag #1

Achim Offline
*****
*****


Beiträge: 4.223
Registriert seit: Nov 2005

20xx
2000
EN

978xx
Deutschland
Fehlermeldung nach Exe-Ende mit User32.dll
Hallo LVF,

das dürfte was für die Fortgeschrittenen sein...

Folgende Ausgangssituation:
Ich habe ein etwas umfangreicheres Programm, mit dem von einem Framegrabber (bis zu acht Videokanäle in Verwendung) zyklisch Daten ausgelesen und dargestellt werden. Die erfassten Daten werden nach einer Umrechnung (2D-U8 -> LV picture) kontinuierlich auf dem Frontpanel dargestellt. Im Hintergrund werden die einzelnen 2D-Arrays (= Frames) in eine AVI-Datei geschrieben. Die Zykluszeiten (n Sekunden AVI-Aufnahme mal m Kameras, Wiederholung alle t Sekunden) variieren dabei je nach Prüfvorgabe der angeschlossenen Kameras. Es handelt sich dabei um Langzeitversuche die bis zu drei Monate dauern, das ganze läuft auf bis zu 5 Rechnern.


Problem:

Leider läuft aus irgendeinem Grund der Arbeitsspeicher voll...Was teilweise soweit ging, das sich der Rechner aufgrund von Arbeitsspeicher-Mangel ins Nirvana verabschiedet hat. Ich hab zuerst an ständig neu erzeugte Handles oder aufwändige Array-Operationen gedacht, aber in der Richtung wurde alles optimiert. Offenbar bleiben Speicherbereiche für die Bilddarstellung allokiert...Irgendwann haben wir dann festgestellt, dass der Arbeitsspeicher wieder freigegeben wird, wenn das Fenster per Mausklick (rechts oben) einmal kurz minimiert wird. Da sinkt dann der Speicherverbrauch von z.B. (über mehrere Tage aufgebauten) 350 MB auf ca. 50 MB...das variiert je nach Rechner.

Diese Tatsache konnten wir nachvollziehen:
http://digital.ni.com/public.nsf/allkb/9EA...625763300434D4D

Also haben wir uns folgenden Workaround ausgedacht: Wir minimieren programmatisch einmal kurz das Fenster (nachts um 0.xx Uhr, da ist sowieso keiner da) und sind damit aus dem Schneider. Leider funktioniert das ganze nicht mit den VI-Server-Funktionen (FP.State = Minimized bzw. Standard), da tut sich am Speicher gar nichts...

Ich hab mich dann an folgendes erinnert:
http://zone.ni.com/devzone/cda/epd/p/id/4935
Das hab ich vor X Jahren schon verwendet, als das per VI Server noch nicht möglich war.

Mit diesen Funktionen aus der User32.dll funktioniert das minimieren tadellos, siehe das angehängteLv86_img-Projekt im Zip-File!

Sonstige .zip  Test_Minimize.zip (Größe: 937,23 KB / Downloads: 340)


Wenn man allerdings eine Exe baut (ebenfalls im Zip-File enthalten), bekommt man nach dem Beenden des Programms vom Dr. Watson eine Fehlermeldung präsentiert:
   

Auf einem anderen Rechner haben wir Visual Studio 2008 installiert, da wird der JIT-Debugger aktiv. Wenn man den deaktiviert, kommt die Warnung, dass man keinen Debugger aktiviert hat.

Ich hab schon sehr viel gegoogelt, z.B. hier und diverse Registry-Einträge probiert, aber das hat alles nichts gebracht. Auch das Löschen des Window-Handles mit der User32.dll-Funktion "DestroyWindow" hat nichts gebracht.Pccrash

Hat jemand eine Idee? Früher gabs keine Probleme in dieser Richtung...zumindest hab ich keine bemerkt! Wir könnten für unsere Tests zwar mit der Fehlermeldung leben, schön ist aber was anderes...

Ich bin für Lösungsvorschläge dankbar!

Gruß
Achim

"Is there some mightier sage, of whom we have yet to learn?"

"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
09.04.2010, 12:12 (Dieser Beitrag wurde zuletzt bearbeitet: 09.04.2010 12:32 von RoLe.)
Beitrag #2

RoLe Offline
LVF-Guru
*****


Beiträge: 1.236
Registriert seit: Jul 2007

-
1997
en

0
Schweiz
Fehlermeldung nach Exe-Ende mit User32.dll
' schrieb:Mit diesen Funktionen aus der User32.dll funktioniert das minimieren tadellos, siehe das angehängteLv86_img-Projekt im Zip-File!
[attachment=54143:Test_Minimize.zip]

Wenn man allerdings eine Exe baut (ebenfalls im Zip-File enthalten), bekommt man nach dem Beenden des Programms vom Dr. Watson eine Fehlermeldung präsentiert:
[attachment=54142:Fehler_drwatson.PNG]
Dr.WatsonBig Grin gibts denn noch.

Also, ich kann nicht einmal das VI testminimize.vi öffnen.
LabVIEW schmiert mir gleich ab.
LabVIEW sucht nach d:Windowssystem32user32.dll und stürzt ab. -> sehr speziell, da würd ich mal ansetzen.

Da ich den Code nicht sehe, verwendest du nun die user32.dll oder die lvwutil32.dll ?

Edit: Da noch die Funktion als direkter Aufruf zur User32.dllLv82_img


Angehängte Datei(en) Thumbnail(s)
   

Sonstige .vi  ShowWindows.vi (Größe: 9,22 KB / Downloads: 316)

.·´¯)--> Leben ist das, was dir passiert, wenn du eifrig dabei bist andere Pläne zu machen <--(¯`·.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.04.2010, 12:33 (Dieser Beitrag wurde zuletzt bearbeitet: 09.04.2010 12:53 von Achim.)
Beitrag #3

Achim Offline
*****
*****


Beiträge: 4.223
Registriert seit: Nov 2005

20xx
2000
EN

978xx
Deutschland
Fehlermeldung nach Exe-Ende mit User32.dll
In den VIs von der NI-Homepage wird teilweise direkt auf die User32.dll zugegriffen, teilweise auf die lvwutil32.dll, die meines Wissens auch nur auf die andere DLL zugreift...


EDIT: Post #3400

"Is there some mightier sage, of whom we have yet to learn?"

"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.04.2010, 12:52
Beitrag #4

Achim Offline
*****
*****


Beiträge: 4.223
Registriert seit: Nov 2005

20xx
2000
EN

978xx
Deutschland
Fehlermeldung nach Exe-Ende mit User32.dll
Update:

Ich hab jetzt mal im DLL-Knoten nur "user32.dll" (ohne Pfad) angegeben...bringt nichts!

Ich habe aber grade folgendes festgestellt:

- Wenn ich die Exe per Mausklick/Enter (im Explodierer) starte, kommt am Ende die Fehlermeldung!

- Wenn ich im LV Project Explorer einen rechtsklick auf die entsprechende Build Specification machen und "Run" auswähle, startet die Exe ebenfalls aber nach deren Ende poppt keine Fehlermeldung auf!

Da waren sie wieder, meine drei Probleme: Unwissenheit, Unlust und Unvermögen...Wacko

"Is there some mightier sage, of whom we have yet to learn?"

"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.04.2010, 12:53 (Dieser Beitrag wurde zuletzt bearbeitet: 09.04.2010 12:55 von RoLe.)
Beitrag #5

RoLe Offline
LVF-Guru
*****


Beiträge: 1.236
Registriert seit: Jul 2007

-
1997
en

0
Schweiz
Fehlermeldung nach Exe-Ende mit User32.dll
' schrieb:In den VIs von der NI-Homepage wird teilweise direkt auf die User32.dll zugegriffen, teilweise auf die lvwutil32.dll, die meines Wissens auch nur auf die andere DLL zugreift...
In deinem Lvwutil32 ist auf steht: c:windowssystem32user32.dll -> das soll man nicht machen.
In meinem "alten" lvwutil32 (und dem selbergemachten im vorigen Post) steht nur user32.dll -> so sollte es sein.

Edit: Mist, 1 Minute zu spät

.·´¯)--> Leben ist das, was dir passiert, wenn du eifrig dabei bist andere Pläne zu machen <--(¯`·.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.04.2010, 13:20 (Dieser Beitrag wurde zuletzt bearbeitet: 09.04.2010 13:21 von Achim.)
Beitrag #6

Achim Offline
*****
*****


Beiträge: 4.223
Registriert seit: Nov 2005

20xx
2000
EN

978xx
Deutschland
Fehlermeldung nach Exe-Ende mit User32.dll
Update:

Nach dem "Verallgemeinern" der DLL-Angabe hab ich halt noch mal nen Neustart des Rechners gemacht...und außerdem hab ich den Rechner von einer "user32.dll-Leiche" befreit, die wohl von einem vorherigen Exe-Erzeugen übrig war...

Tada: Scheinbar funzt es jetzt...Tongue

"Is there some mightier sage, of whom we have yet to learn?"

"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.04.2010, 14:13
Beitrag #7

RoLe Offline
LVF-Guru
*****


Beiträge: 1.236
Registriert seit: Jul 2007

-
1997
en

0
Schweiz
Fehlermeldung nach Exe-Ende mit User32.dll
' schrieb:das dürfte was für die Fortgeschrittenen sein...
' schrieb:Nach dem "Verallgemeinern" der DLL-Angabe hab ich halt noch mal nen Neustart des Rechners gemacht...und außerdem hab ich den Rechner von einer "user32.dll-Leiche" befreit,
Fortgeschritten ist nur die Woche, es ist Wochenende Yahoo

.·´¯)--> Leben ist das, was dir passiert, wenn du eifrig dabei bist andere Pläne zu machen <--(¯`·.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.04.2010, 14:25
Beitrag #8

BsaiboT Offline
LVF-Stammgast
***


Beiträge: 449
Registriert seit: Nov 2009

2010
2007
kA

22459
Deutschland
Fehlermeldung nach Exe-Ende mit User32.dll
' schrieb:außerdem hab ich den Rechner von einer "user32.dll-Leiche" befreit

Ich werde ihrer heute Abend beim ersten Grillabend des Jahres gedenken....
Grill
Prost

Schönes Wochenende wünsche ich euch! Geniesst den Sonnenschein!

//Tobias
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
  User32.dll FP absolut immer im Vordergrund PreVIEW 15 19.589 28.07.2017 22:57
Letzter Beitrag: rolfk
  Mauszeiger mit user32.dll erstellen samewise 6 7.535 27.05.2014 09:16
Letzter Beitrag: samewise

Gehe zu: