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 

Aufruf der user32.dll führt zum Absturz von Labview



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!

19.10.2010, 07:42
Beitrag #1

aptiva Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 53
Registriert seit: Sep 2009

2010
2009
kA

80331
Deutschland
Aufruf der user32.dll führt zum Absturz von Labview
Hallo,
bin zur Zeit am Erstellen eines größeren Projekts und Labview beendet sich beim Aufruf der user32.dll mit der Funktion keybd_event komplett. In den Labview Versionen 8.6 und 2009 funktioniert das jedoch ohne Probleme. Diese Windows-Funktion hat die Aufgabe einen Tastendruck der Print-Screen Taste zu emulieren, damit ich dieses Bild im Anschluss aus der Zwischenablage entnehmen und abspeichern kann.
Kann bitte jemand diesen Bug verfizieren? Bzw. hat jemand eine Idee für das Lösen des Bugs?
Anbei ein Bild auf dem Block-Diagramm
   

Vielen Dank im Vorraus
Aptiva
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
19.10.2010, 08:32
Beitrag #2

nookie Offline
CLA
*


Beiträge: 47
Registriert seit: May 2008

2011
2004
EN

2540
Oesterreich
Aufruf der user32.dll führt zum Absturz von Labview
Hallo,

du kannst alternativ auch auf anderem Wege einen Screenshot machen.

lG nookie

   

Intuition ist die Fähigkeit, die Lage in sekundenschnelle falsch einzuschätzen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.10.2010, 09:31
Beitrag #3

aptiva Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 53
Registriert seit: Sep 2009

2010
2009
kA

80331
Deutschland
Aufruf der user32.dll führt zum Absturz von Labview
Die Variante geht leider nicht, da ich nicht vom Frontpanel, sondern von einem anderen Programm einen Screenshot machen muss, das im Hintergrund läuft
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.12.2010, 22:44
Beitrag #4

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
Aufruf der user32.dll führt zum Absturz von Labview
' schrieb:Hallo,
bin zur Zeit am Erstellen eines größeren Projekts und Labview beendet sich beim Aufruf der user32.dll mit der Funktion keybd_event komplett. In den Labview Versionen 8.6 und 2009 funktioniert das jedoch ohne Probleme. Diese Windows-Funktion hat die Aufgabe einen Tastendruck der Print-Screen Taste zu emulieren, damit ich dieses Bild im Anschluss aus der Zwischenablage entnehmen und abspeichern kann.
Kann bitte jemand diesen Bug verfizieren? Bzw. hat jemand eine Idee für das Lösen des Bugs?
Anbei ein Bild auf dem Block-Diagramm
[attachment=58978:LV_crash.JPG]

Vielen Dank im Vorraus
Aptiva

Könnte es sein dass Du in Deiner CLN den absoluten Pfad zu user32.dll hast stehen? Das das crasht ist nämlich ein bekanntes Problem und steht so auch in der Bugliste für 2010. Für DLLs im Systemverzeichnis (und wohl auch Windowsverzeichnis) muss man spezifisch NUR den DLL Namen einführen. Nach schliessen und wieder öffnen steht da zwar wieder der absolute Name aber solange man daran nichts editiert sollte noch immer der DLL Name alleine abgespeichert bleiben und dann crasht es nicht.

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
17.12.2010, 13:34
Beitrag #5

aptiva Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 53
Registriert seit: Sep 2009

2010
2009
kA

80331
Deutschland
Aufruf der user32.dll führt zum Absturz von Labview
Danke, werd das eben mal schnell ausprobiern...
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.01.2011, 16:32
Beitrag #6

aptiva Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 53
Registriert seit: Sep 2009

2010
2009
kA

80331
Deutschland
Aufruf der user32.dll führt zum Absturz von Labview
So habe es mal ausprobiert und verschiedenes andere auch.
Hilft leider nichts, LV crasht leider immer noch. Auch im NI-Forum wird von dem Problem berichtet:
http://forums.ni.com/t5/LabVIEW/Can-i-make...p/534790/page/4
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.01.2011, 10:33 (Dieser Beitrag wurde zuletzt bearbeitet: 19.01.2011 10:33 von toaran_.)
Beitrag #7

toaran_ Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 237
Registriert seit: Feb 2007

2012
2006
EN

90763
Deutschland
Aufruf der user32.dll führt zum Absturz von Labview
Hallo

bei funktioniert es so ...

WindowsXP prof. LV2010
Lv10

Sonstige .vi  user32test.vi (Größe: 8,31 KB / Downloads: 550)


gruß T
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.01.2011, 11:28
Beitrag #8

aptiva Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 53
Registriert seit: Sep 2009

2010
2009
kA

80331
Deutschland
Aufruf der user32.dll führt zum Absturz von Labview
Danke, der Vorschlag von toaran_ funktioniert. Er unterscheidet sich durch die Verwendung der Funktion "Run in any Thread" bei der Thread Option. Des weiteren sind die Eingangsdatentypen anders. Anscheinend hatte ich den Aufruf aus einem Beispiel aus dem LV Forum kopiert.
Die älteren LV-Versionen sind fehlertoleranter, da diese alte Vi auch in den LV Versionen 8.6 und 2009 funktioniert hat. Kann somit als gelöst betrachtet werden.

Fehlerursache ist somit, die Übergabe eines falschen Eingangsdatentypes in einen DLL-Aufruf führt zum Absturz von LabView...
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.01.2011, 13:09 (Dieser Beitrag wurde zuletzt bearbeitet: 07.03.2011 22:01 von rolfk.)
Beitrag #9

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
Aufruf der user32.dll führt zum Absturz von Labview
Also ich habe mir mal schnell die MSDN Dok angeschaut und Dein ursprünglicher Code war definitief falsch konfiguriert.

MSDN sagt dazu:

Code:
VOID WINAPI keybd_event(
  __in  BYTE bVk,
  __in  BYTE bScan,
  __in  DWORD dwFlags,
  __in  ULONG_PTR dwExtraInfo
);

Man müsste also die Parameter als folgt definieren:

U8
U8
U32
Pointer sized integer

Die ursprüngliche Konfiguration verhaut durch die unterschiedlichen Parametergrössen den Stack, und WINAPI kann damit absolut nicht umgehen (wenn LabVIEW dazu nicht noch einen extra Stackframe und weitere Protection hinzufügt, was man in LAbVIEW 2010 mit dem Maximum Debug Level bei der Call Library Node erreicht), wobei die Funktion dann aber einen Fehler zurückgibt, da der Stack eigentlich zerschossen wurde. Und wenn man Pech hat kracht es auch trotz der extra Protection. Eigentlich ist das nicht Pech sondern Glück, denn auch wenn es auf der Entwickelmaschine in der CLN nur einen Fehler generiert statt zu krachen, kann das auf einem anderen System plötzlich doch in einen Crash enden.

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
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  IDE Absturz bei Aufruf der Methode SetXML dlambert 0 4.248 02.09.2010 14:15
Letzter Beitrag: dlambert

Gehe zu: