"Das Bitmap aus der EXE zu extrahieren, sei zu Zeiten von Windows 1.0 gar nicht möglich gewesen."
Nunja, eher nicht für Laien oder in 1984. Aber zu Windows 2.x Zeiten ab '87 sicher doch. Gab genug Werkzeuge. Disassembler, Hexeditoren.. Bild-Betrachter wie EASEL oder Malprogramne wie PC Paintbrush.. Ab Windows 3.0 gab's z.B. den Borland Ressource Editor, der NE Dateien zerlegen konnte..
Apropos. 16-Bit OS/2 1.x hatte ja auch das NE Format, bevor es PE (Win32 und 32-Bit OS/2 2.x+) und LE oder LX verwendete.
Das LX bzw. LE Format kam später bei Windows 3.x/9x auch für *386/VXD Treiber zum Einsatz.
Kann doch gut sein, dass das SDK für OS/2 1.x passende Tools hatte, um solche Sachen zu extrahieren.
Was man auch wissen muss:
Für 16-Bit Windows konnte man im Prinzip normale 16-Bit 80x86 Entwicklungswerkzeuge weiterwenden.
Windows 1.x/2.x -mit Ausnahme von Windows/386- waren noch an den Real-Mode gebunden, sodass normale Compiler jediglich gegen die Windows-API gelinkt werden mussten (Windows.h).
Edit: Normalerweise haben alle NE-Binaries auch einen MZ-Header am Anfang. Diesem folgt ein kleines DOS-Programm, ein Stub. "Diese Anwendung benötigt MS-Windows". Damit DOS nicht abstürzt/hängt, wenn man solche Programme ohne Windows aufruft.
Programme wie Setup.exe haben sogar zwei Versionen ein und desselben Programms für DOS/Win3.
Wahrscheinlich ein Relikt aus der Zeit der "Family API".
Klar, in der Praxis brauchte man Compiler, die mit MASM/MS C Compilern in etwa kompatibel waren.
Aber Prinzipiell waren Win16-Programme nur spezielle DOS-Programme. Bei GEM war es ähnlich. Allerdings haben manche Win1/Win2-Programme direkt mit dem Speicher gespielt. Solche machten dann unter Windows 3.x im Protected-Mode Ärger.
Daher hatte Windows 3.0 u.a. auch noch den Real-Mode Kernal enthalten um Abwärtskompatibelität mit kommerzieller Software zu wahren. Der übrigens gar nicht so schlecht war, da er Expanded Memory unterstützte. Sogar für Windows-Programme und in der Large/Small Variante. War für Turbo XT Besitzer mit EMS-Karten sicher cool.
Edit: Eine Sache muss ich noch loswerden.
In den 80ern tickten die Leute anders. Windows war damals nur ein kleines, vergleichsweise unbedeutendes Programm.
Das änderte sich erst so ab Windows/386 (Windows 2.x) und Windows 3.0.
Bitte versetzt euch daher kurz in diese Zeit.
Damals hatte man noch in Büchern und Zeitschriften nach Code-Beispielen gesucht.. Vielleicht auch in Mailboxen oder BTX.
Und Windows war damals schlicht "MS-Windows".
Man hatte also nicht speziell für Windows 1.x, 2.03, 2.10, 2.11 usw. programmiert.
Edit: Es gab auch Hartgesottene, die sich Photokopien von Dokumenten per Post oder Faxgerät zugeschickt haben lassen. Meist von Bekannten, die einen kannten, die einen kannten, der die Unterlagen hatte. Oder man rief eine deutsche Niederlassung der Firma an, welche aber meist die speziellen Unterlagen der amerikanischen Programmierer auch nicht mal eben parat hatte.
Man muss sich das in etwa so vorstellen: Programmierer aus Deutschland oder Mitarbeiter einer Niederlassung riefen dann per Telefon bei Software-Firmen wie Microsoft in den USA an, um nach Code-Beispielen zu fragen. Diese wurden dann ausgedruckt (mit Glück lag eine 3,5" oder 5,25" Diskette bei) und per Post zugeschickt und kamen nach 6 Wochen an, wenn es nicht Luftpost (Airmail) war.
- Okay, rein theoretisch gab es bereits seit den 70ern sowas wie ein "Internet". Es gab etliche Datennetze, die per X.25 weltweit erreichbar und auch miteinander vernetzt waren. Hier in Deutschland gab es Datex-P, welches den Zugang bot. Daran hingen auch die Banken usw.
Die wenigen Programmierer, die es gab, verlinkten ihre Programme vermutlich schlicht gegen die "MS-Windows API", die auf einer Buchdiskette usw. beilag. Also wahrscheinlich die ursprüngliche Fassung, mangels besserem Wissen und den leicht veralteten Büchern.
Daher sind viele Windows 2.x-Programme auch unter Windows 1.x lauffähig, obwohl der Entwickler im Jahre ~1988 gar nicht mehr an Windows 1.x dachte.
Programme, die eigentlich für Windows 2.x gedacht waren, erkennt man daran, dass sie im Menü Unterstriche anzeigen (Alt+F öffnet File usw.).
Damals war der große Hauptgewinn von Windows 2.x gegenüber 1.x, dass die Fenster sich überlappen konnten und man sie in die gewünschte Größe ziehen konnte. Die Neuerungen in der Windows API waren zweitrangig und dafür nicht nötig. Windows 1.x Programme konnten die neue Fenstertechnik auch so nutzen.
Edit :Eine Ausnahme gab es. Pop-Up Dialoge konnten Fenster überlappen. Findige Programmierer nutzten das, um schon unter Windows 1.x überlappende "Fenster" zu kreieren.
Edit: Alle Angaben ohne Gewehr.