DLLs benutzen ohne sie mitzuschleppen?
Übersicht

![]() |
blackgeckoBetreff: DLLs benutzen ohne sie mitzuschleppen? |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo!
Tschuldigung, wenn die Frage schon gestellt wurde, aber ich hab nichts gefunden. Ich hab mal die acceptfiles.dll (Drag&Drop) ausprobiert und will sie in einem Projekt verwenden. Das mit dem Userlib Ordner und der decls-Datei hab ich noch hingekriegt, konnte das Programm sowohl starten als auch compilieren. Nun ist es ja so, dass dann die DLL immer in dem Ordner sein muss, in dem die Exe ist. Kann man das irgendwie umgehen? Es sieht halt doof aus, wenn man das Programm weitergibt und immer die DLL mitschleppen muss, weil sonst ne Fehlermeldung kommt. Geht das vielleicht mit dem Resource Hacker? |
||
So long and thanks for all the fish.
Fedora 17 | Windows 7 || BlitzPlus | BlitzMax Rechtschreibflame GO!!! Deppenapostroph | SeidSeit | Deppenakzent | DassDas | Deppenleerzeichen | TodTot | enzigste.info - Ja, ich sammel die. |
![]() |
Nicdel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Die einzige Lösung, die mir bekannt ist, ist, dass du die DLL in einem Unterverzeichnis hast und beim ersten Start nach C:\WINDOWS\system32 (bei WinXP, ist unterschiedlich, GetEnv![]() |
||
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7 |
![]() |
jokerman29 |
![]() Antworten mit Zitat ![]() |
---|---|---|
hi,
du musst dich nciht entschuldigen wenn du fragen hast ![]() leg doch einen zweiten ordner an z.b. gfx und pakc da die lib rein (musst dann den pfad ändern im code) und dann kann man sie (glaub ich) verstecken, also so das man sie nicht sieht. mit rechtsklick auf die lib und dann eigenschaften ---> und unten sollte dann die option "verstecken" sein. dieses verstecken ist nur fürs auge, aber nicht fürs programm heißt der benutzer sieht nihtmehr die lib, das programm aber schon. ich bin mir jetzt nicht 100% sicher obs mit der lib funktz aber bei meinem vokabelkasten hab ich die textdateien auch versteckt und das programm konnte sie lesen... also sollte das auch klapen ![]() mfg jokerman29 |
||
WhY sO sErIoUs? LeT´s PuT a SmIlE oN tHaT fAcE!
Rechtschreibfehler sind special-effekts meiner Tastatur ![]() |
![]() |
Nicdel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nein, das geht nicht. DLLs müssen immer im Hauptverzeichnis liegen (Ausnahme: CallDLL![]() |
||
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7 |
![]() |
skey-z |
![]() Antworten mit Zitat ![]() |
---|---|---|
Was ist so schlimm, dass eine DLL im Root liegt, schau dir mal verschiedene z.T. auch Professionelle Spiele und Programme an, die haben zumeist mehrere DLL's im Root.
Wen so was stört, kann sich ja eine Verküpfung von der Exe auf dem Desktop anlegen und von dort aus starten. |
||
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz BAC#57: 2. Platz |
![]() |
blackgecko |
![]() Antworten mit Zitat ![]() |
---|---|---|
Danke erstmal für die Mühe!
Ich hab eben mal versucht, eine Datei mit CopyFile nach C:\Windows\System32 zu kopieren: Es geht nicht. Zumindest unter Windows 7 nicht, unter XP könnt ich mirs vorstellen. Das Programm ist eben im Moment eine einzige Exe-Datei, ohne irgendwelche Anhängsel. Die zwei kleinen Grafiken, die gebraucht werden, werden im Code erstellt und woanders gespeichert. Wenn es geht, würde ich es gern bei der einen Exe belassen, das ist einfach praktischer. Naja, ich probier mal ein bisschen rum, falls ich eine Möglichkeit finde, sag ich Bescheid. |
||
So long and thanks for all the fish.
Fedora 17 | Windows 7 || BlitzPlus | BlitzMax Rechtschreibflame GO!!! Deppenapostroph | SeidSeit | Deppenakzent | DassDas | Deppenleerzeichen | TodTot | enzigste.info - Ja, ich sammel die. |
chi |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
da gibt es jetzt mehrere möglichkeiten...
die beste wäre, du besorgst dir molebox. mit mb kannst du alle files in eine einzige exe packen und hast darüber hinaus auch noch die möglichkeit deinen code + dateien vor missbrauch zu schützen. die neue version von mb bietet dazu auch noch die option deine exe so umzuschreiben, daß sie als reine, nicht gewrappte exe compiliert wird und deshalb eher weniger als virus von av-software erkannt wird. molebox kostet aber $299,- dann gibts da noch den blitz media-linker mit dem du alle files eines projekts in deine exe packen kannst. nur .dll´s funktionieren leider nicht (müssen im verzeichnis der exe sein). bml ist gratis ![]() als dritte option wäre da noch 7-zip. alle files die du für dein projekt benötigst einfach als .7z packen und mit dem zusätzlich verfügbaren packet 7zip???_extra als SFX-exe speichern. dabei werden deine files allerdings vor dem ausführen immer in den temp-ordner entpackt und von dort gestartet. wenn du aber images, models,... vorher mit dem media-linker vorbereitet hast, gibt es auch nur die exe und deine dll´s ![]() cheers, chi |
||
![]() |
blackgecko |
![]() Antworten mit Zitat ![]() |
---|---|---|
299$ hab ich grad nicht da ![]() Mit dem BlitzMedia Linker gehts nicht. Wenn ich mit 7zip eine selbstentpackende Exe erstelle (so wars doch gemeint?), dann wird beim Ausführen gefragt, wohin extrahiert werden soll und das ist auch nicht schön. Außerdem muss der Benutzer dann nochmal die entpackte Exe ausführen. Ich hab zwischendurch ein bisschen mit dem Resource Hacker rumgespielt, mit dem kann man ja schließlich auch Manifest-Dateien einfügen, aber ich hab bislang noch keine Lösung für dlls. |
||
So long and thanks for all the fish.
Fedora 17 | Windows 7 || BlitzPlus | BlitzMax Rechtschreibflame GO!!! Deppenapostroph | SeidSeit | Deppenakzent | DassDas | Deppenleerzeichen | TodTot | enzigste.info - Ja, ich sammel die. |
ChristianK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Du kannst die DLL auch in einem anderen Unterordner ablegen. Dann musst du sie zwar trotzdem mit weitergeben, aber eben in einem eigenen Ordner.
Ändere dazu einfach in der .decls Datei die erste Zeile zu: .lib "bin/acceptfiles.dll" Dann kannst du die DLL im Ordner "bin" neben der EXE speichern. |
||
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT |
![]() |
Silver_Knee |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hänge die dll gefolgt von ihrer <INT> Dateigröße an das Ende deiner Exe an. Nun kannst du beim starten die dll relativ einfach von der Position Ende-4-Letztes_Int bis Ende-4 auslesen und extrahieren
Wenn blitz vor dem entpacken die existenz der dll hinterfragt bracuhst du eine Exe an die du deine jetzige exe und die dll anhängst Mit EXE, <INT> EXE-Länge, DLL<INT> DLL-Länge und anschließendem execfiledürfte das funktionieren. |
||
chi |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
doch doch, mit 7zip geht das! ![]() siehe hier -> http://it.megocollector.com/?p=16 falls du nicht klar kommst sag bescheid... |
||
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
jokerman29 hat Folgendes geschrieben: ...dieses verstecken ist nur fürs auge, aber nicht fürs programm heißt der benutzer sieht nihtmehr die lib, das programm aber schon...
Das ist ein Irrglaube: https://www.blitzforum.de/upload/file.php?id=7939 Nicht das Du Dich mal 100% darauf verlässt. |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
![]() |
jokerman29 |
![]() Antworten mit Zitat ![]() |
---|---|---|
wie meinst du das jetz?? ![]() meinst du das man es wieder sichbar machen kann oder das das programm es nichtmehr sehen kann?? edit ah jetzt versteh ich was du meinst... woher soll denn z.b. mein lehrer wissen, dass es bei dem Vokabelkasten die Textdateien gibt?? also ich glaub nciht das er danach suchen wird aber trotzdem danke für den hinweis! mfg jokerman29 |
||
WhY sO sErIoUs? LeT´s PuT a SmIlE oN tHaT fAcE!
Rechtschreibfehler sind special-effekts meiner Tastatur ![]() |
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Er muss nicht danach suchen, die Dateien werden bei entsprechender Ordnereinstellung so oder so angezeigt. | ||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
![]() |
Chrise |
![]() Antworten mit Zitat ![]() |
---|---|---|
du könntest ja die dll-zeilen in eine bb-datei einspeichern und immer wenn du die exe ausführst eine dll-datei in das temporäre verzeichnis schreiben. Ist aber vielleicht je nach größe der dll datei etwas umständlich.
Ich glaube ein programm wie molebox, da gibts bestimmt auch einige freeware programme, wäre die beste lösung ![]() |
||
Llama 1 Llama 2 Llama 3
Vielen Dank an Pummelie, der mir auf seinem Server einen Platz für LlamaNet bietet. |
chi |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
man benötigt:
.) 7zip (z.b. 7z910.exe) ... http://sourceforge.net/projects/sevenzip/files/ .) 7z910_extra.7z ... (inhalt ins 7zip-verzeichnis kopieren) .) ResHacker ... http://angusj.com/resourcehacker/ .) ev. Blitz Media-Linker (um vorher textures, models, usw. zur exe hinzuzufügen (am besten ohne kompression)) TUTORIAL: 1) packe deine .exe + .dll + ??? zu einer .7z -> z.b. test.7z (kompressionsstärke ultra würde ich empfehlen) 2) kopiere die erstellte test.7z direkt ins 7zip verzeichnis 3) erstelle eine config.txt datei und schreib folgendes rein: (nehmen wir an deine .exe heißt auch test.exe) Code: [AUSKLAPPEN] ;!@Install@!UTF-8! RunProgram="test.exe" ;!@InstallEnd@! 4) erstelle ein make.bat datei: Code: [AUSKLAPPEN] copy /b 7zS.sfx + config.txt + test.7z test.exe 5) starte make.bat und du erhältst deine fertige test.exe (allerdings mit einem unnötigen popup) -> optional popup entfernen: 6) starte ResHacker, öffne deine .exe und gehe zu Dialog / 500 / 1033. dort ersetzt du das vorhandene script mit: Code: [AUSKLAPPEN] 500 DIALOG 0, 0, 0, 0 STYLE WS_POPUP CAPTION "Progress" LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US FONT 8, "MS Shell Dlg" { } ... und klickst auf "Compile Script". weiters würde ich empfehlen, icons und version info nach lust und laune anzupassen.... anschließend die .exe speichern und FERTIG!!! (um nicht jedesmal punkt 6 zu wiederholen, kannst du anstatt deiner .exe auch die datei 7zS.sfx mit ResHacker öffnen und dort das script usw. verändern. somit wäre bei punkt 5 schon alles vorbei ![]() EDIT: natürlich gibts für das ganze auch ne GUI... http://sourceforge.net/projects/sfx-maker/ yo, dann viel spaß dabei... lg, chi |
||
![]() |
skey-z |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das wäre mir für so ein kleines Ergebnis echt zu viel Aufwand. | ||
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz BAC#57: 2. Platz |
chi |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
lol, wo is das viel aufwand???
wenn man´s einmal vorbereitet hat, dann dauerts max. 10 sekunden die .7z in den ordner zu kopieren, eventuell den namen der exe in der config.txt umzuschreiben und die make.bat zu starten... aber wenn du eine bessere methode hast die auch kostenlos ist, dann bin ich ganz ohr ![]() |
||
![]() |
blackgecko |
![]() Antworten mit Zitat ![]() |
---|---|---|
Danke chi, es funktioniert ![]() Auch wenn ich keine Ahnung hab, was da jetzt genau gemacht wird. ![]() Aber wenigstens kann ich das jetzt in mein Projekt einbauen. Danke nochmal! |
||
So long and thanks for all the fish.
Fedora 17 | Windows 7 || BlitzPlus | BlitzMax Rechtschreibflame GO!!! Deppenapostroph | SeidSeit | Deppenakzent | DassDas | Deppenleerzeichen | TodTot | enzigste.info - Ja, ich sammel die. |
chi |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hauptsache es funktioniert ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group