Bilder aus DLL laden
-
Hi!
Wie kann ich nen Bild aus ner DLL in ein TImage laden?MfG
Benjamin
-
Image1->Picture->LoadFromFile("Datei.dll");
Es liegt an deinem Kompiler, ob er das Format erkennt. Beim BCB3 kannst du standardgemäß nur BMP, ICO und noch 2 andere laden. Bei BCB6 sind sogar scho JPG und GIF dabei *g*.
<edit>Off-Topic-Part rausgelöscht. Deine Sig. Tut nichts zur Sache beim Thema Bilder laden.</edit>
Und bevor junix oder noch andere leute hier komen, die hinter ihm stehen:
Beim BCB3 kan er nunmal standardmäßig nur BMP, ICO und noch 2 andere Bildformate lesen.
[ Dieser Beitrag wurde am 24.06.2003 um 09:04 Uhr von junix editiert. ]
-
Image1->Picture->LoadFromFile("Datei.dll");
Das wird wohl so nicht funktionieren.
Anstatt der DLL sollte doch immer ein Bild (BMP, ICO, usw.) stehen.
-
Original erstellt von Spieleprogrammierer:
Image1->Picture->LoadFromFile("Datei.dll");Was soll denn der Stuss? Hier handelt es sich doch offensichtlich um das Laden eines Bilds aus einer resourcen DLL. Bestimmt nicht einfach um ein umbenanntes Bild... *kopfschüttel* Denk erst mal nach, bevor du antwortest.
@ProfEich: Dachte eigentlich wir hätten hier das Thema schonmal gehabt, aber hab nix dazu gefunden... vielleicht findest du hier nen Lösungsansatz: http://groups.google.ch/groups?hl=de&lr=&ie=ISO-8859-1&q=Load+Image+from+resource+dll+cppbuilder
TBitmap verfügt ausserdem über eine Methode namens LoadFromResourceName... vielleicht hilft das weiter?
-junix
-
Muss nicht @F98. Speichere mal eine BMP-Datei in eine DLL, öffne sie, du wirst sehen, es klappt.
Nimm mal nen Memo, und lese dort die DLL-Datei ein, da stehen bestimmt merkwüdige Zeichen *g*
Aber wenn du eine TXT-Datei in DLL umbenennst, und sie dann öffnest, dann steht da der Text, den du da reingeschrieben hast. Sicherlich muss immer das Format stimmen.
Wenn du eine DLL-Datei im BCB6 einliest, dan geht das, denn er schaut, mit welchen Format das kompatibel ist, findet er keins, dann gibts ne Fehlermeldung, aber ist es eine Bitmap oder Jeepeg , dann öffnet er sie. Ist übrigens ganz gut, wenn man temporäre Dateien braucht *g*
-
Original erstellt von Spieleprogrammierer:
Speichere mal eine BMP-Datei in eine DLL, öffne sie, du wirst sehen, es klappt.Das blosse Ändern der Dateinamenerweiterung ist mehr als nur unprofessionell... Entweder man hat ne DLL oder man hat ein BMP aber man benennt keine BMP in eine DLL um. Das ist sinnloses geprolle.
-junix
-
Also als unprofessionell würd ich das nicht einstufen, schließlich schauen sich Benutzer von Programmen alles mögliche an, wenn sie dort eine BMP-Datei sehen, die da so herumschwirrt, dann schaun sie sie an, verändern sie vielleicht sogar und beim nächsten öffnen, bei temp-dateien meine ich, tauchen fehler auf, das nenne ch unprofessionell. Aber nun mal das mit dem umbenennen: Wenn er neBMP-Datei öffnet, das Programm speichert sie in eine DLL-Datei, vielleicht ist die sogar bei ihm versteckt, dann schaut er sich die nicht an, denn er "weiß", dass es nicht geht. Also was hast du dagegen? Ich mach das immer so.
-
Klar, ich nenne alle meine *.bmp ab sofort in *.sys um. Das bedeutet nach Deiner Aussage, ich hätte die *.sys in ein *.bmp konvertiert.
Dem ist aber nicht so. Durch pures Umbenennen einer Datei ändere ich noch lange nicht die interne logische Struktur des Files!!!!
Du kannst ja gerne mal probieren eine beliebige Textdatei in system32.dll umzubennen und diese dann im Dos-Mode dem Betriebssystem als die echte system32.dll unterzujubeln (kernel32.dll ist da auch ganz gut geeignet
).
Mal sehen was dann passiert.
Die DLL müßte dann Resourcen (Bilder, usw.) beinhalten auf die man per RES-ID zugreift.
-
Es _ist_ unprofessionell. Wenn du deine Dateien schützen willst, pack sie in eine ResourcenDLL oder ein Zip-Archiv oder züchte dein eignes Dateiformat. Ausser Verwirrung bringt es nicht mal den von dir angesprochenen Schutz. Denn die Headerinformationen z.B. bleiben genau gleich erhalten wie wenn dus als .BMP speicherst.
Gehört aber nicht hierher und weitere Beiträge die nicht zum Thema Bilder aus DLL laden gehören, werden kommentarlos gelöscht. Weitere Diskussionen um Dateinamenerweiterungen gehören ins Rund um die Programmierung-Forum.
-junix
[ Dieser Beitrag wurde am 24.06.2003 um 09:46 Uhr von junix editiert. ]
-
Hab ich gesagt, dass ich die Struktur ändern will? -Nein
Hab ich gesagt, dass du manuell alle BMP-Dateien umbenennen sollst? -NeinAber ich sagte, dass wenn du temporäre Dateien brauchst, um z.B. das nächste mal wieder das Bild zu öffnen oder so, kannst du ja beim Schließen das vorhandene Bild in eine DLL-Datei speichern. Das geht, und dann wieder öffnen, probiers mal, ist auch was völlig anderes als ob ich ne TX-Datei in eine SYS-Datei umbenenne, zufällig system32.sys. Denn hier sollst du keine benötigte DLL ersetzen sondern eine eigene DLL einrichten. Ist ein unterschied. Naja, vielleicht iste es nicht das, was du suchst, aber wenn du nicht willst, dass benutzer daran herumfummeln, dann sollte man sowas ruhig machen, denn an dll-dateien traut sich keiner *g*