LabVIEWForum.de
fehlende externe Funktion 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: fehlende externe Funktion DLL (/Thread-fehlende-externe-Funktion-DLL)



fehlende externe Funktion DLL - nic74 - 26.04.2012 22:25

Folgendes Problem.

Ein erstellte Installationsdatei läuft auf Rechner mit Win XP, Vista, WIn 7 64bit. Jedoch nicht auf Win / mit 32 bit. Es kommt die Fehlermldung beim Starten der exe wie im Pic dargestellt.
Kann wer helfen, wo diese DLL noch hinkopiert werden soll?

Vielen Dank


RE: fehlende externe Funktion DLL - jg - 27.04.2012 08:20

Die Fehlermeldung besagt klar, dass eine DLL fehlt, bzw. nicht gefunden wird.

Ich kann jetzt nur raten, dass es eine DLL im Zusammenhang mit diesem Teil hier ist:
http://www.sequoia.it/de/fast_tracer_details.htm

Und da würde ich mal sagen, die Treiber dieses Fremdanbieter-Teils müssen ebenfalls auf deinem Ziel-PC installiert werden.

Gruß, Jens

P.S.: Ich hoffe, du hast deinen Installer mit einer 32bit-Version von LabVIEW erstellt?!


RE: fehlende externe Funktion DLL - nic74 - 29.04.2012 19:05

Hi

Der Installer wurde mit einer 32-bit Version erstellt. Es läuft ja auf allen Windows-Systemen und 32 oder 64 mit der Ausnahme eben, daß es gerade auf Win7 32bit nicht läuft .-!
Wenn man das installiert, dann findet sich im Ordner c://Programme/..... im "Data" Ordner auch die scheinbar fehlende DLL. Warum also klappt das dann nicht? Die DLL ist ja da.
Ich verstehs´nicht.


RE: fehlende externe Funktion DLL - jg - 29.04.2012 23:18

Mglw. fehlende Benutzerrechte zum Ausführen der DLL oder des Programmes.
Windows 7 kann da sehr zickig sein.
Probier mal, das Programm im Admin-Modus auszuführen.

Gruß, Jens


RE: fehlende externe Funktion DLL - nic74 - 30.04.2012 07:37

Hi Jens

Admin klappt auch nicht.
Allerdings hab ich jetzt die Entwicklungsumgebung auf den besagten Rechner installiert und es läuft da auch nicht. Wenn ich im "Knote zum Aufruf exteren Bibliotheken" den PFad zur DLL angebe, (wo sich auch liegt) dann sagt Labview "Fehler beim Laden von c:/User/..... ". Eine DLL-Initialisierungsroutine ist fehlgeschlagen.
Das Labview liest die DLL einfach nicht.


RE: fehlende externe Funktion DLL - rolfk - 01.05.2012 12:52

(30.04.2012 07:37 )nic74 schrieb:  Hi Jens

Admin klappt auch nicht.
Allerdings hab ich jetzt die Entwicklungsumgebung auf den besagten Rechner installiert und es läuft da auch nicht. Wenn ich im "Knote zum Aufruf exteren Bibliotheken" den PFad zur DLL angebe, (wo sich auch liegt) dann sagt Labview "Fehler beim Laden von c:/User/..... ". Eine DLL-Initialisierungsroutine ist fehlgeschlagen.
Das Labview liest die DLL einfach nicht.

LabVIEW tut mit der DLL selber gar nichts, ausser Windows fragen, diese doch bitte zu laden. Windows tut das dann auch bis es ein Problem sieht. Das ist in Deinem Fall wahrscheinlich dass die DLL alleine halt nur die halbe Sache ist, und diese noch von anderen DLLs abhängt. Das können weitere DLLs sein die zum eigentlichen Treiber gehören oder aber auch C (oder andere) Runtime Libraries von einer bestimmten Version oder Programmierumgebung. Wahrscheinlich erledigt das ein Installer für Deinen Treiber, den man dann auch ausführen muss. LabVIEW hat (ausser die DLL selber zu analysieren, was ein sinnloses Unterfangen ist, da der Windows Executable Loader nicht wirklich dokumentiert ist und zu jeglicher Zeit durch Microsoft angepasst werden kann), keinerlei Möglichkeit um festzustellen welche anderen Abhängigkeiten Deine DLL hat, und noch viel weniger zu versuchen diese Abhängigkeiten auf eine sinnvolle Weise mit in den Applikationbuild zu nehmen. Gerade MS C Runtime Libraries zum Beispiel können nicht einfach kopiert werden, sondern müssen explizit auf eine ganz bestimmte Weise im System installiert werden, mit Registryeinträgen und allem was Microsoft sich da sonst noch ausgedacht hat.

Sobald Windows ein solches Problem sieht, wie eine fehlende Dependency, bricht es das Laden einfach ab und gibt an LabVIEW eine Fehlermeldung zurück, die nur besagt dass es misslungen ist. Warum das so ist will Windows nicht mitteilen und LabVIEW versucht dann auch nicht, smarter zu sein dann Windows. Mögliche Gründe sind zum Beispiel fehlende DLL (was LabVIEW noch detektieren könnte), oder beschädigte DLL, oder fehlende Abhängigkeit, oder Sicherheitseinschränkungen, oder, oder, oder. Wenn Du selber feststellen kannst dass die DLL auf Disk anwesend ist und der aktuelle User Leserechte dazu hat, kannst Du aber in 99% der Fälle davon ausgehen dass es eine fehlende Dependency ist.


RE: fehlende externe Funktion DLL - nic74 - 08.05.2012 05:20

Vielen Dank für die Erklärung zumindest weiß man jetzt besser Bescheid bei den DLLs

Die Lösung:
Nachdem der Installer alle notwendigen (sind mehrere DLL, welche dann auch in %system32 gehören) kopiert hat und man das Programm starten will, dann klappt es vorerst nicht. Vor Programmstart muß man nämlich am USB die Hardware anstecken, danach erscheint mal von selbst kurzzeitig ein DOS-Fenster, wo ein eigentlicher Treiber installiert wird (typischer Fall von "Hardware gefunden und Treiber werden gesucht und installiert").

Erst wenn man danach das Programm startet läuft die Sache.
Irgendwie war das bei allen andren Win-Systemen nicht Voraussetzung, diese Abarbeitungsfolge einzuhalten, nur bei WIN7/32 anscheinend.