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 

Unzulässiger Zugriff auf Speicherbereich



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!

12.10.2012, 00:04
Beitrag #3

stud12 Offline
LVF-Grünschnabel
*


Beiträge: 15
Registriert seit: Sep 2012

2011
2009
DE



RE: Unzulässiger Zugriff auf Speicherbereich
Hallo,

ich hab mal noch ein wenig rumgestöbert und musste feststellen, dass ich nicht der einzige mit diesem Problem bin.

Nochmal das Problem in Kurzform:
Fehlermeldung "Ungültiger Zugriff auf einen Speicherbereich" nachdem VI geöffnet wurde und erfolgreich lief, anschließend geschlossen wurde und später erneut geladen werden soll.

In folgenden zwei Links wird das selbe Problem beschrieben und auch gleich eine Erklärung inklusive Lösung besprochen. Allerdings verstehe ich nur Bahnhof... Liegt weniger an meinen Englischkenntnissen, sondern wohl mehr an meinem oberflächlichen LabVIEW-Wissen. Glare

Hab zu jedem Link auch gleich die Lösung des Problems herauskopiert, damit ihr nicht erst die ganze Diskussion lesen müsst...


Link 1

Erklärung/Lösung:
It relates to our dll structure. We create a message pump in the dll associated with a hidden window. When the dll is initialized, the window is registered with the operating system. When the dll is unloaded, the window is closed but we weren't de-registering it. This caused the problem the second time the dll was loaded. By de-registering when the dll is unloaded, the problem has been solved.


Link 2

Erklärung/Lösung 1:
The problem was threading. LabVIEW does not currently have the capability to handle multithreaded DLLs properly. The calling application would create a thread, run the DLL, then destroy the thread. When it was run again, the thread creation process was not able to proceed as it should have.

Erklärung/Lösung 2:
DLLs created by LV need a number of resources to carry out execution. The problem here is that the first time LV is called, the thread it is called with will be adopted as its UI thread. The LV execution system will create windows in that thread, and if the thread is later destroyed, it will cripple the LV execution system since it cannot have anything execute in the UI thread. This is why some VIs will work fine while others will not.
If the rest of your app relies on this create/call/destroy architecture, just make sure that the first call or th
e LoadLib is in a different thread that satisfies these requirements. You can then make the DLL calls in any thread that you like and destroy them any way that you like.


Was ist hier mit "Thread" gemeint, und was stimmt mit dem nich?
So ungefähr versteh ich das Problem jetzt ein bisschen, aber ich hab nicht den Hauch einer Ahnung wie ich mit dem Wissen das Problem jetzt umgehen kann...

Danke schonmal im Voraus und Sorry für den vielen Text...

PS: Ein Bildchen vom Blockdiagramm würde euch bestimmt gefallen... Hole ich nach, sobald ich im Labor bin Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Nachrichten in diesem Thema
RE: Unzulässiger Zugriff auf Speicherbereich - stud12 - 12.10.2012 00:04

Gehe zu: