Dll wird nicht gefunden - 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: Dll wird nicht gefunden (/Thread-Dll-wird-nicht-gefunden) |
Dll wird nicht gefunden - alan - 11.08.2021 08:42 Hallo zusammen, wir haben ein Projekt mit LabView 2018 und ich bin ziemlich neu in diesem Bereich. Ich habe bereits eine Library erstellt mit allen VI's welche wir benötigen (Import DLL) und diese VI's sind letztlich Funktionen/Methoden aus einer Library (LibraryA.dll) . Solange dass wir nur auf Methoden der LibraryA.dll zugreifen ist alles OK. Das Problem tritt nun auf wenn LibraryA.dll auf LibraryB.dll zugreifen möchte! Hier beginnt mein Problem. Ich habe LibraryB.dll im selben realen Ordner wie LibraryA.dll, jedoch kommt immer der interne Fehler das LibraryB.dll nicht gefunden wird. Muss ich hier irgendwas beachten? Also, muss ich eventuell im Project an sich bereits eine Struktur aufbauen wo auch LibraryB.dll [...] LibraryX.dll mit drinnen sind? Ich hoffe einer von Ihnen kann mir hier weiterhelfen, ich stecke gerade tief im Mist :-) Vielen Dank und Grüße, Alan RE: Dll wird nicht gefunden - GerdW - 11.08.2021 09:52 Hallo Alan, herzlich willkommen im LabVIEW-Forum! Zitat:Solange dass wir nur auf Methoden der LibraryA.dll zugreifen ist alles OK. Das Problem tritt nun auf wenn LibraryA.dll auf LibraryB.dll zugreifen möchte!Tipp: schau mal im NI-Forum (oder auch hier im Forum) nach Posts von RolfK. Er kennt sich sehr gut mit dieser Problematik aus und hat diese schon mehrfach erläutert! Einfache Zusammenfassung seiner Erklärungen: Nur weil du LibB gleich neben LibA kopierst, weiß Windows trotzdem nicht, dass es LibB eben dort findet! Windows hat seine eigenen Regeln, wo es nach Libraries sucht - und dies hat typischerweise NICHTS mit dem Ordner zu tun, in dem dein Executable liegt… RE: Dll wird nicht gefunden - rolfk - 17.08.2021 01:25 (11.08.2021 09:52 )GerdW schrieb: Einfache Zusammenfassung seiner Erklärungen: Nur weil du LibB gleich neben LibA kopierst, weiß Windows trotzdem nicht, dass es LibB eben dort findet! Windows hat seine eigenen Regeln, wo es nach Libraries sucht - und dies hat typischerweise NICHTS mit dem Ordner zu tun, in dem dein Executable liegt… Stimmt fast 100%, ausser dass es eben alles zu tun hat mit dem Folder wo das eigentliche EXE Programm steht. Dies ist das erste Directory wo Windows nach extra DLLs sucht. Aber wenn Du in der LabVIEW Entwickelumgebung bist, ist das das Directory wo LabVIEW.exe ist, nicht Deine LibB.dll. Es ist nicht praktisch DLLs in dieses Directory zu kopieren. Wenn Du mit einem Project arbeitest kannst Du die DLLs in das Directory legen wo auch das Projectfile ist. LabVIEW scheint bei Windows dieses Directory als extra Searchpath zu registrieren. Sobald Du ein Executable in LabVIEW baust, solltest Du sicherstellen, dass solche DLLs (und möglicherweise alle anderen auch) im Hauptverzeichnis Deines Programmes, also neben dem Executable liegen. |