Bilder in Dll?

2 Antworten

Du müsstest sie als Handle oder als Objekt mit einer Übergabemethode über einen void-Pointer ziehen können.

Ups, hab nicht gelesen dass du in C# unterwegs bist. Dafür habe ich leider keine Idee...

Im Grunde packst du die Bilder einfach als "Embedded Resource" in die DLL, packst nen Verweis zu der DLL in die EXE und rufst von da aus die Bilder ab.

Hab dazu mal eine Beispielprojektmappe gebastelt:

https://drive.google.com/open?id=1sD629vEveFgDZ27YZn7CjPDb32ceF3a-

Kern der ganzen Sache ist die .resx-Datei, die für jedes Bild einen Eintrag dieser Form enthält:

<data name="loremipsum" type="System.Resources.ResXFileRef, System.Windows.Forms">
    <value>irgendwo\irgendwas.png;System.Drawing.Bitmap, System.Drawing</value>
</data>

P.S.: Mit Visual Studio kannst du zwar auch einfach über nen Dateiauswahldialog Bilder zu einer .resx-Datei hinzufügen, aber leider werden diese dann als Base64-Dump der Bilddatei in der .resx-Datei gespeichert, so dass nach jeder Änderung am Bild der Eintrag in der .resx-Datei erneut hinzugefügt werden muss. Deswegen bevorzuge ich die Methode, in der .resx-Datei einfach nur auf die Bilddatei zu verweisen, so dass Änderungen am Bild sofort und automatisch übernommen werden.