22.05.2013, 21:09
Beitrag #1
|
lupus022
LVF-Grünschnabel
Beiträge: 42
Registriert seit: May 2013
2012
-
DE
|
DLL-Einbindung schlägt fehl
Guten Abend,
ich arbeite derzeit mit LabView 2012, und habe dafür eine BeispielVI. Diese enthält einen Verweis auf eine DLL, die vorhanden ist. Jedes Mal, wenn ich jedoch diese VI ausführen möchte, kommt der Fehler, dass die DLL entweder nicht gefunden oder nicht geladen werden konnte.
Was kann ich tun, damit ich den Fehler beheben kann?
Vielen Dank,
lupus
|
|
|
22.05.2013, 22:58
Beitrag #2
|
|
|
23.05.2013, 06:48
Beitrag #3
|
lupus022
LVF-Grünschnabel
Beiträge: 42
Registriert seit: May 2013
2012
-
DE
|
RE: DLL-Einbindung schlägt fehl
Ich habe die DLL sowohl direkt neben die DLL als auch in %system% gepackt. Abhängigkeiten laut DependencyWalker sind die Standarddlls + eine weitere DLL, die ich aber bereits ebenfalls in das Systemdirectory gepackt habe und in sämtliche Orte, an denen die Hauptdll liegt.
Der gesamte Pfad wurde im Library Name or Path control eingegeben (und an diesem Ort liegt auch die DLL).
|
|
|
23.05.2013, 08:01
Beitrag #4
|
rolfk
LVF-Guru
Beiträge: 2.305
Registriert seit: Jun 2007
alle seit 6.0
1992
EN
2901GG
Niederlande
|
RE: DLL-Einbindung schlägt fehl
(23.05.2013 06:48 )lupus022 schrieb: Ich habe die DLL sowohl direkt neben die DLL als auch in %system% gepackt. Abhängigkeiten laut DependencyWalker sind die Standarddlls + eine weitere DLL, die ich aber bereits ebenfalls in das Systemdirectory gepackt habe und in sämtliche Orte, an denen die Hauptdll liegt.
Der gesamte Pfad wurde im Library Name or Path control eingegeben (und an diesem Ort liegt auch die DLL).
Dependencies im selben Directory dann wo die Hauptdll liegt ist fast immer sinnlos. Das funktioniert nur wenn der DLL Programmiere explizit die DLL dort zu referenzieren versucht was beinahe niemand tut.
Bist Du auf einem Windows 64 Bit System, mit LabVIEW 32 Bit? Dann musst Du aufpassen welches %system% Directory Du verwendest.
Auch könnte es an einem Manifest in der DLL liegen das eine bestimmte SxS Assembly laden will.
Und das mit den "sämtlichen Orten wo die Hauptdll liegt" klingt verdächtig wie wenn da noch einige Halbleichen rumliegen. Aufräumen!
Wenn Du einen Installer für die DLL und Dependencies hast und dieser alles nett in %system% installiert dann benütze den und referenziere die DLL nur mit dem Namen in der Call Library Node. Ansonsten wirds lästig. Die DLL sollte dann relativ zu den VIs liegen die sie referenzieren, je nach VI Disk Struktur im selben Directory oder einem eine Ebene höher oder tiefer. Die Dependecy sollte immer durch einen Installer in %system% oder in ein Directory dass in der PATH Environment Variable vorkommt, installiert werden. Alternativ kann man sie eventuel auch ins Applicationsdirectory kopieren (das ist im Entwicklungssystem das Directory wo LabVIEW.exe liegt, und in einer Build application wo dein MyApp.exe liegt. Das von LabVIEW normal verwendete data Directory für extra Gemüse funktioniert hier nicht weil LabVIEW nichts mit dem Laden von Dependencies zu tun hat. Das tut direkt Windows und das hat vom data Directory keine Ahnung.
|
|
|
23.05.2013, 08:32
Beitrag #5
|
lupus022
LVF-Grünschnabel
Beiträge: 42
Registriert seit: May 2013
2012
-
DE
|
RE: DLL-Einbindung schlägt fehl
Für die DLLs gab es keinen Installer, leider.
Ich habe die DLLs in system32 kopiert, ich hoffe, das war richtig? Alternative wäre noch SysWow64.
Woran erkenne ich das Manifest, sollte es vorhanden sein?
|
|
|
23.05.2013, 09:24
(Dieser Beitrag wurde zuletzt bearbeitet: 23.05.2013 09:26 von rolfk.)
Beitrag #6
|
|
|
23.05.2013, 09:42
Beitrag #7
|
lupus022
LVF-Grünschnabel
Beiträge: 42
Registriert seit: May 2013
2012
-
DE
|
RE: DLL-Einbindung schlägt fehl
Die LabView-Version ist eine 32bit-Version. Ich habe die DLLs mal in SysWOW64 kopiert, bekam dann dort allerdings die Fehlermeldung beim Registrierungsversuch, dass die DLLs angeblich 32bit-DLLs wären, und daher nicht registriert werden könnten.
Außerdem meldete mir Windows, dass ich weitere DLLs benötigen würde, die ich jedoch noch nie auf dem System gefunden habe (z.B. DCOMP.dll oder api-ms-win-core-winrt-string-l1-1-0.dll).
|
|
|
23.05.2013, 11:16
Beitrag #8
|
lupus022
LVF-Grünschnabel
Beiträge: 42
Registriert seit: May 2013
2012
-
DE
|
RE: DLL-Einbindung schlägt fehl
Nachdem ich LabView mehrfach neugestartet habe, funktioniert auf einmal alles... (aber erst beim dritten Neustart)...
Verstehe einer die Software.
Danke aber für die Hilfe!
|
|
|
| |