Werden Resourcen in der exe gespeichert?
lima-city → Forum → Programmiersprachen → Basic
anwendung
benutzer
datei
fehlermeldung
funktion
kumpel
liegen
neun
nichtmal
programm
programmiersprache
programmstart
projekt
ressource
stelle
technik
url
verweis
verwenden
wissen
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Also die Bilder werden im Programm selbst angezeigt und die anderen Dateien sollen auf der Festplatte zwischengespeichert werden!
-
Ja, Ressourcen werden in der exe gespeichert. Wenn du das nicht möchtest, musst du die Dateien irgendwo im Dateisystem ablegen und den Pfad im Programm verwenden (z.B. My.Computer.FileSystem.SpecialDirectories.CurrentUserApplicationData ). Du könntest auch beim ersten Start des Programms die notwendigen Dateien aus den Ressourcen dorthin extrahieren und dann immer die extrahierten Dateien verwenden.
-
und wie siehts mit Verweisen aus? (z.B eine .dll) wird die mit gespeichert?
-
softtrink schrieb:
DLL's werden nicht automatisch in die EXE gespeichert. Mir sind zwar Techniken bekannt wie man diese in AutoIt in die EXE integrieren kann. Ob deine immer noch nicht genannte Programmiersprache dies unterstützt kann ich nicht wissen. Wie wäre es wenn du dich durch die Dokumentation und die Hilfe durcharbeitest?
und wie siehts mit Verweisen aus? (z.B eine .dll) wird die mit gespeichert? -
Wir sind hier im Basic Forum oder? Also VB!!!
-
Du meinst also DLL's die du selber erstellst und nachher im Programm verwendest?
Naja, der Sinn einer DLL ist ja, dass diese programmunabhängig verwendet werden kann. Deshalb wird die nicht in der exe gespeichert. Wenn du die DLL ganz normal in der Projektmappe hinzugefügt hast, dann muss die im gleichen Verzeichnis wie die exe liegen. -
Also müsste es funktionieren wenn ich die dll in die Resourcen packe und bei Programmstart in einem Verzeichniss auf der Festplatte speichere!
-
Im Prinzip ja. Bedenke aber, dass du dann die DLL erst NACH dem extrahieren einbinden darfst, d.h. dass du nicht bei Programmstart einen Verweis auf eine nicht vorhandene DLL setzt.
-
Die DLL wird erst für weitere funktionen gebrauch.
Leider startet das Programm bei meinem Kumpel nicht woran könnte das liegen?
VG -
softtrink schrieb:
Trotzdem muss die DLL dann zur Laufzeit dynamisch vom Programm geladen werden und darf nicht gegen das Programm gelinkt sein, was der Normalfall wäre.
Die DLL wird erst für weitere funktionen gebrauch.
softtrink schrieb:
Das äußert sich wie? Fehlermeldung? Oder passiert einfach gar nichts?
Leider startet das Programm bei meinem Kumpel nicht -
.dll's müssen bei vielen Programmiersprachen mitgeschickt werden.
Man kann aber den Inhalt der dll in das Programm einfügen aber wie das Funktioniert kann ich dir nicht sagen^^^^ -
softtrink schrieb:
Es passiert einfach gar nichts! nichtmal eine Fehlermeldung!
Dann solltest du als Softwareentwickler dein Programm so schreiben und mit Fehlermeldungen ausstatten (oder auf Debug-Meldungen an ein entsprechendens Programm ausgeben), sodass es dir selbst möglich sein sollte, nachzuvollziehen, beim Aufruf welcher Funktion / Resource und warum der Fehler aufläuft. -
Ich glaube es ist einfacher für dich, wenn du eine Setup-Datei erstellst, welche alle Dateien dort hinlegt, wo du sie haben willst.
Dann hast du auch kein Problem mit dem Programm (übrigens habe ich es getestet und das beschriebene Fehlerverhalten entspricht genau dem Fall, dass du einen Verweis auf eine nicht vorhandene DLL gesetzt hast - aber auf dieses Problem haben dich bereits mehrere Posts hingewiesen. Sollte das nicht der Fall sein -> Debugging). -
Also einen Verweis auf eine Stelle, wo durch die Setup.exe die dll hinkopiert wird?
-
Du kompilierst ganz normal dein Projekt. Dadurch hast du die exe und die DLL. Beide müssen im gleichen Ordner sein, also entpackt die Setup-Datei beide ins gleiche Verzeichnis. Den Verweis im Programm kannst du ganz normal machen - wenn es nämlich gestartet wird, muss ja auch die DLL schon da sein.
-
Aber wenn ich neun den Verweis auf den Installationspfad lege, dann is das doch ein ganz anderer Benutzer!
Tut mir Leid, aber ich habe keine Ahnung, was du mit diesem Satz sagen willst.
Nocheinmal zur Erklärung (und dann sollte dass aber geklärt sein):
Du hast in deiner Projektmappe eine Forms-Anwendung und eine Klassenbibliothek. Über die Projekteigenschaften hast du den Verweis zu den Klassen der DLL hergestellt. Im Programm kannst du dann die einzelnen Klassen ganz normal verwenden.
Nach dem kompilieren hast du eine exe und eine DLL, beide müssen im gleichen Verzeichnis sein, damit das Programm läuft.
Dann erstellst du eine eigene Setup-Datei - entweder du programmierst hierfür wieder eine Forms-Anwendung, oder du benutzt z. B. innoSetup.
Nach dem Setup liegen dann DLL und EXE in einem von dir bestimmten Verzeichnis und du kannst das Programm ganz normal starten. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage