(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.