LabVIEWForum.de
Appl Builder findet DLL nicht obwohl vorhanden - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Application Builder (/Forum-Application-Builder)
+---- Thema: Appl Builder findet DLL nicht obwohl vorhanden (/Thread-Appl-Builder-findet-DLL-nicht-obwohl-vorhanden)



Appl Builder findet DLL nicht obwohl vorhanden - Torsten Schönbach - 14.05.2014 16:06

Hallo

ich habe folgendes Problem. Habe bis vor kurzem LV2009SP1 auf XP verwendet. Habe jetzt einen neuen Rechner mit Win7.
Bei meiner Anwendung greife ich auf eine DLL von PEAK Systems zu (canapi2.dll). Wenn ich die Applikation unter LV laufen lassen funktioniert diese einwandfrei.
Will ich nun eine EXE erzeugen. Bekommen ich die Fehlermeldung siehe Anhang.

Die Datei canapi2.dll ist aber definitiv im Verzeichnis c:\Windows\System32 enthalten.

Bin ziemlich am Verzweifeln. Habe LV schon vollständig repariert und das Patch f5 ausgeführt. Ich habe das Gefühl, das Win7 mir den zugriff nicht erlaubt.


RE: Appl Builder findet DLL nicht obwohl vorhanden - Torsten Schönbach - 15.05.2014 08:21

Die Antwort ist ganz einfach wenn man sie weis.

Windows 7 legt seine 32bit Treiber unter WOWSys64 und seine 64bit Treiberl unter System32 ab.

Da ich ein LabView 2009 32bit auf einem 64bit Rechner betreibe, hat Labview versucht auf die DLL im System 32 zuzugreifen. Was ein Problem ist.

Nach dem ich die dll im system32 temporär gelöscht habe sucht LV nach einer anderen, die sie dann in WOWSys64 findet. und schon geht es.


RE: Appl Builder findet DLL nicht obwohl vorhanden - GerdW - 15.05.2014 08:49

Hallo Thorsten,

Zitat:Da ich ein LabView 2009 32bit auf einem 64bit Rechner betreibe
Schön, dass du diese Info wenigstens in der Lösung bekannt gibst.

Wenn sie dagegen schon in der Frage gestanden hätte, wären vielleicht auch Antworten gekommen…


RE: Appl Builder findet DLL nicht obwohl vorhanden - rolfk - 15.05.2014 10:44

(15.05.2014 08:21 )Torsten Schönbach schrieb:  Die Antwort ist ganz einfach wenn man sie weis.

Windows 7 legt seine 32bit Treiber unter WOWSys64 und seine 64bit Treiberl unter System32 ab.

Da ich ein LabView 2009 32bit auf einem 64bit Rechner betreibe, hat Labview versucht auf die DLL im System 32 zuzugreifen. Was ein Problem ist.

Das kann so eigentlich nicht stimmen, ausser Du hast den Pfad zu Deiner DLL explizit in der Call Library Node angegeben. Wenn Du dort nur den DLL Namen angibts teilt LabVIEW einfach an Windows mit dass es diese DLL gerne haben möchte und Windows sucht dann automatisch in SysWOW64 wenn der aufrufende Prozess ein 32 Bit Prozess ist.

Zitat:Nach dem ich die dll im system32 temporär gelöscht habe sucht LV nach einer anderen, die sie dann in WOWSys64 findet. und schon geht es.

Es heisst SysWOW64 nicht WOWSys64 und wenn Du den Librarypfad in der Call Library Node so anpasst dass Du nur den DLL Namen eingibst (LabVIEW lässt dann zwar den effektiven Pfad sehen aber speichert intern nur den DLL Namen ab) dann ist das Löschen der 64 Bit DLL nicht nötig. Auch hast Du damit die Garantie dass LabVIEW beim Bauen der Applikation (und des Installers) diese nicht als private Kopie mit in den Applikationbuild nimmt, was wiederum Probleme geben würde wenn Du dann den Herstellertreiber irgendwann mal updatest aber Deine LabVIEW Applikation mit der privaten, alten Kopie weiterarbeitet.