Ja: Unter Linux heißen die Entsprechungen zu DLLs meist .so-Dateien („shared objects“). Sie sind gemeinsam genutzte Bibliotheken, die Programme zur Laufzeit laden, also funktional se...
Kann man in VB.NET 2003 Bilder in DLLs speichern und im aktuellen Projekt anzeigen?
Antwort vom**Ja – in VB.NET 2003 kannst du Bilder in einer DLL speichern und im aktuellen Projekt anzeigen. Der saubere Weg ist, die Bilder als eingebettete Ressourcen in die DLL aufzunehmen und sie zur Laufzeit daraus zu laden.** ## Was praktisch gemeint ist Eine DLL kann nicht nur Code enthalten, sondern auch Ressourcen wie Bitmaps, Icons oder Strings. Für dein Projekt bedeutet das: - Du kannst Bilder zentral in einer DLL ablegen. - Mehrere Programme können dieselben Bilder nutzen. - Änderungen an den Bildern erfordern meist nur eine neue DLL statt Änderungen an jedem Formular. ## Der wichtige Unterschied Entscheidend ist, **wie** die Bilder in der DLL liegen: 1. **Als eingebettete Ressource** - am zuverlässigsten - Bild ist direkt in der DLL enthalten - wird zur Laufzeit über den Assembly-Stream geladen 2. **Als normale Datei neben der DLL** - technisch möglich, aber dann ist das Bild nicht wirklich *in* der DLL - bringt kaum Vorteile gegenüber einem normalen Bilderordner Wenn du wirklich Bilder **in** der DLL speichern willst, sind **embedded resources** die richtige Lösung. ## So funktioniert es in VB.NET 2003 Du fügst das Bild in das DLL-Projekt ein und setzt die Build-Aktion auf eingebettete Ressource. Danach kannst du es im Hauptprojekt etwa so laden: ```vb Imports System.Reflection Imports System.IO Imports System.Drawing Dim asm As Assembly = GetType(IrgendeineKlasseAusDerDll).Assembly Dim stm As Stream = asm.GetManifestResourceStream("MeineDll.Bilder.logo.jpg") If Not stm Is Nothing Then Dim img As Image = Image.FromStream(stm) PictureBox1.Image = img End If ``` ## Worauf du achten musst Der Ressourcenname ist der häufigste Fehler. Er lautet meist nicht nur `logo.jpg`, sondern eher so etwas wie: ```vb MeineDll.Bilder.logo.jpg ``` Also: - Standard-Namespace der DLL - ggf. Ordnername - Dateiname mit Endung Wenn der Name nicht exakt stimmt, liefert `GetManifestResourceStream(...)` einfach `Nothing`. ## Praktischer Tipp Wenn du unsicher bist, wie der Ressourcenname genau lautet, kannst du dir alle eingebetteten Ressourcennamen ausgeben lassen: ```vb Dim asm As Assembly = GetType(IrgendeineKlasseAusDerDll).Assembly Dim names() As String = asm.GetManifestResourceNames() Dim s As String For Each s In names MessageBox.Show(s) Next ``` Das ist in alten .NET-Versionen oft der schnellste Weg zur Fehlersuche. ## Lohnt sich das **Ja, wenn du gemeinsame Bilder zentral verwalten willst.** **Nein, wenn Benutzer die Bilder später leicht austauschen sollen.** Denn eingebettete Bilder sind bequem für Verteilung und Konsistenz, aber unpraktisch, wenn man sie ohne Neukompilieren ändern möchte. ## Klare Empfehlung **Ja, das geht in VB.NET 2003 problemlos – und für feste Programmgrafiken ist eine Ressourcen-DLL deutlich besser als lose Bilddateien.** Wenn die Bilder aber vom Benutzer austauschbar sein sollen, ist ein externer Ordner die bessere Lösung.
Verwandte Fragen
Wie lade ich hier Bilder hoch?
Direkt im Chat über das Büroklammer-, Plus- oder Bild-Symbol neben dem Eingabefeld; wenn dort kein Upload-Button erscheint, ist die Bildfunktion in deiner aktuellen Ansicht oder auf deinem G...
Kann man hier Bilder hochladen?
Ja – wenn die Plattform die Bildfunktion freigeschaltet hat, kannst du Bilder direkt im Chat bzw. im Eingabebereich hochladen; wenn kein Upload-Symbol sichtbar ist, ist es hier aktuell nicht ver...
Können Fotos und Bilder von außen blockiert oder gesperrt werden?
Normale Fotos wie JPG oder PNG werden in der Regel nicht „von außen gesperrt“. Wenn sie plötzlich nicht mehr aufgehen, liegt es fast immer an Dateibeschädigung, fehlender A...
Windows 7 64-Bit: api-ms-win-core-path-l1-1-0.dll fehlt – wie beheben?
Nein: Diese DLL solltest du nicht einzeln aus dubiosen DLL-Seiten „nachinstallieren“. Bei api-ms-win-core-path-l1-1-0.dll ist das auf Windows 7 meist kein fehlendes Einzelteil, sondern ein...
Wie heißen die einzelnen Menügruppen im MainMenu von VB.NET 2003?
Ja: Diese Einträge heißen in VB.NET 2003 beim MainMenu in der Praxis meist Top-Level-Menüpunkte oder Hauptmenüs; technisch sind es MenuItem-Objekte. Wenn du also „Datei&ldq...