' schrieb:Hallo Leute!
Ich bin jetzt endlich fertig mit meinem Progamm (dank eurer mehrfachen hilfe).
Nun möchte ich eine Exe-Datei erstellen, sodass man nicht immer die vi über LAbview öffnen muß.
Das Problem ist nun aber das er 2 dll-Dateien und einige unter VI komplett mitnehmen soll. Soweit bekomme ich das (glaube ich) auch noch hin nur dann kommt beim starten folgende fehlermeldung.
Wie schaffe ich es, das ich das Programm einfach komplett über die EXE starten und benutzen kann?
gruß und dank
Du erwähnst DLLs die Du eingebunden hast. Was sind das für DLLs? Bist Du Dir ziemlich sicher dass die DLLs oder die Anbindung davon an LabVIEW wirklich fehlerfrei ist?
Nur weil es im LabVIEW Entwicklungssystem läuft heisst dass noch lange nicht dass da nicht ein Fehler in der Anbindung der DLLs ist. Dieser Fehler (etwa ein zu kleiner String- oder Arraybuffer der an die DLL übergeben wird) kann in gewissen Situationen ohne direkte Auswirkungen bleiben weil dabei nicht lebenswichtige Specherbereiche überschrieben werden. Kleine Änderungen an der Software können aber die Anordung der Speicherbereiche verändern und plötzlich schreibt die DLL über einen Pointer den LabVIEW früher oder später benötigt und: Kawumm!
Andere mögliche Warnhinweise: Die Applikation crasht wenn man sie abschliesst. Es wurde Speicher überschrieben den LabVIEW im normalen Betrieb nicht benötigt aber wenn man LabVIEW abschliesst will es allen Speicher den es zuvor alloziert hat auch wieder ordentlich frei geben und stolpert dann über zerstörte Speicherpointer.
Das Bauen eines Executables hat ziemlich tiefgreifende Änderungen am Speicherlayout des Programmes zur Folge da sehr viel unnötiger Ballast (Diagramme, nie sichtbare Frontpanele, usw) rigoros entfernt werden um Speicher zu sparen. Da steigt die Chance natürlich entsprechend, dass das Überschreiben einer verkehrten Speicheraddresse die Chance auf einen fatalen Fehler wesentlich erhöht.
Rolf Kalbermatter