LabVIEWForum.de
Probleme bei der Pfadangabe zur dll - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: DLL & externer Code (/Forum-DLL-externer-Code)
+---- Thema: Probleme bei der Pfadangabe zur dll (/Thread-Probleme-bei-der-Pfadangabe-zur-dll)



Probleme bei der Pfadangabe zur dll - ulli27 - 11.06.2010 09:29

Hallo,

beim Versuch, eine bestimmte dll einzubinden, stoße ich auf unerwartete Probleme:

Wenn ich den CallLibrary-Knoten konfiguriere, bekomme ich immer folgende Fehlermeldung:

"Error loading 'Pfadname'. Unzulässiger Zugriff auf einen Speicherbereich." Das erscheint mir insofern schon seltsam, da ich eine englische LabVIEW-Version habe (LV9, Win7 64bit deutsch). Kommt die Meldung dann nicht aus dem LabVIEW?

Nach langem Hin und Her habe ich dann mal den Pfad direkt am Knoten eingegeben. Und siehe da, jetzt funktioniert es. Was könnte dafür die Ursache sein?
Es ist zwar ein Workaround aber doch nicht so richtig elegant. Wenn ich alle Funktionen der dll automatisch importieren will, muss ich ja alle Pfade extra eingeben...


Hat jemand eine Idee?



Viele Grüße,
Ulli.


Probleme bei der Pfadangabe zur dll - rolfk - 11.06.2010 10:38

Wen Du sagst dass es funktioniert, meinst Du damit dass Du die Call Library Node Konfiguration ohne Fehler abschliessen kannst oder dass das VI korrekt ausgeführt werden kann?

Da bei Übergabe des Pfadnamens and die CLN dieser erst beim Ausführen des VIs relevant ist, ist es logisch dass beim Abschliessen des Konfigurationdialogs kein Fehler auftritt da die Call Library Node noch gar nicht weiss welche DLL geladen werden soll, und dies erst bei der ersten Ausführung tut.

Falls Du das VI ausführen kannst (und die Funktion tatsächlich ausgeführt wird und kein error aus der Call Library Node kommt) hast Du wahrschinlich ein Problem, dass Deine DLL noch andere DLLs referenziert, die nicht in den Standardsuchpfaden von Windows liegen. Aus irgendeinem Grund scheint diese sekundäre DLL dann zur Ausführungszeit schon im Speicher zu sein so dass das Laden der DLL die in Deiner Call Library Node referenziert wird eben gelingt.

Also erst mal testen dass bei der übergabe des DLL Pfades diese tatsächlich geladen werden kann und korrekt ausgeführt wird. Dabei hast Du nämlich nicht einen interaktiven Error Dialog sondern einen Runtime error im "error out" Ausgang der Call Library Node. Wenn Du den nicht testest kann es sein, dass es derselbe Fehler auftritt aber Du einfach nichts davon merkst.


Probleme bei der Pfadangabe zur dll - ulli27 - 11.06.2010 12:22

Danke Rolf, Du hast natürlich recht: der Fehler kommt dann beim Ausführen (dll nicht gefunden).

Und ja, es gibt eine weitere Abhängigkeit zu einer dll, welche in das system32-Verzeichnis kopiert werden muss. Das habe ich auch getan. Das verrückte daran ist, gestern hat der ganze Spaß schonmal funktioniert. Ich hatte schon ein paar Wrapper geschrieben und konnte die Funktionen nutzen. Vorher hatte ich die gleichen Fehler, nachdem ich die zusätzliche dll nach system32 kopiert hatte, lief es aber dann.
Seit heute morgen ist jedoch wieder immer der angeführte Fehler.

Kann es sein, das beim Windows Update was schiefgelaufen ist? Heute morgen hatte ich ein recht umfangreiches Update...

Grüße,
Ulli.