BRCC
weiß überhaupt nicht, was eine PNG-Datei ist und speichert sie deshalb wie jede andere unbekannte Datei (RT_RCDATA) ab, was völlig selbstverständlich problemlos klappt. Bitmap, Icon/Cursor sowie RIFF-ANI sind die einzigen Grafikformate, die für die RES ein anderes als das originale Format vorsehen, weshalb sich der Compiler nicht
inhaltlich um Sachen wie PNG kümmern muss.
Tja wär ja schön wenns so wäre. Ist es aber nicht. Probiert es selbst aus. Ich habe die betreffenden Dateien als ZIP angehängt. Die beiden Varianten unterscheiden sich nur dadurch, dass in mainicon.ico eine zusätzliche Version mit 256x256 Auflösung enthalten ist und in mainicon2.ico nicht.
Dein Projekt enthält keine PNG-Datei. Eine PNG in einer Icondatei ist immer noch eine Icondatei, die vom Ressourcenkompiler in diverse Bilddateien (Bitmaps und eben eine PNG) zerlegt wird, die jeweils als RT_ICON (auch: Icon Entry) eingebunden werden. Auch generiert er ein RT_GROUP_ICON mit Verweisen auf diese. Die Einbindung einer PNG-Datei als RT_ICON, das wie erwähnt anders RT_RCDATA oder ein (technisch identischer) benutzerdefinierter String-Typ eigentlich eine Veränderung der Ressource benötigt, ist dem BRCC für PNG unbekannt (korrekt wäre: keine Veränderung, anders als Bitmap-Icon-Entries, die verändert werden müssen), das Ding ist schließlich seit 19 Jahren nicht mehr angefasst worden.