' schrieb:Was für ein Zufall. Hab mich heute erst wieder damit befasst
Gelöst hab ich das Problem leider immer noch nicht. Es scheint so als ob die DLL andere DLLs verwendet. (geht das? Ich kenn mich da gar nicht aus).
Ja das geht nicht nur sondern ist ausser für extrem triviale DLLs beinahe unvermeidbar. Meist geht es minimal um ein paar WinAPI DLLs die aber bei Windows sowieso schon dabei sind. Aber eine DLL kann beliebig viele andere DLLs referenzieren und wenn das statisch gemacht wird, kann das Laden der primären DLL durch LabVIEW nur funktionieren, wenn auch alle abhängigen DLLs von Windows gefunden werden. Hier hat LabVIEW aber eben überhaupt keinen Einfluss darauf. Alles was LabVIEW tun kann ist Windows sagen dass es DLL XYZ laden soll und Windows versucht dann alle Abhängigkeiten aufzulösen. Wenn eine davon nicht auflösbar ist für Windows dann sagt Windows zu LabVIEW einfach Ätsch! und verweigert das Laden der DLL und basta.
Es ist denkbar dass das daher kommt dass im gleichen Verzeichnis Deiner DLL die Du in LabVIEW benützen willst noch andere DLLs die von dieser DLL benützt werden liegen. Nachdem Du im Windows FileDialog die DLL angewiesen hat, speichert dieser FileDialog das zuletzt benützte Directory für Deinen Prozess ab und möglicherwiese benützt Windows zusätzlich zu den dokumentierten Pfaden um DLLs zu finden auch noch diesen zuletzt benützten Pfad (Current Directory) um Abhängigkeiten aufzulösen. Das könnte erklären warum es bei Dir immer nach dem Starten zuerst einmal falsch geht da beim Starten einer Applikation das Current Directory durch Windows auf den Ort gesetzt wird wo das Executable sich befindet (und Deine DLLs sich eben nicht befinden).
Das ist aber alles Windows spezifisch und LabVIEW hat da absolut keinen Einfluss darauf.
Rolf Kalbermatter