Einzelnen Beitrag anzeigen

woki

Registriert seit: 29. Mär 2003
563 Beiträge
 
Delphi 2006 Architect
 
#22
  Alt 23. Apr 2003, 09:40
Zitat:
Wer führt denn deien Exe aus? Windows oder Delphi?
Delphi, wenn es um die Resourcen geht, also die Anwendung, die ich mit Delphi erzeugt habe. Resourcen sind kein ausführbarer Code, Windows muß damit gar nichts anfangen können, außer zu wissen, daß es eine Resource ist.

siehe z.B.

RT_RCDATA Application-defined resource (raw data)

womit die von mir postulierte Resource, die Windows nicht kennt identifiziert wäre, hätte mich auch sehr gewundert, wenn ich eine binäre Resource nur dann in die exe packen könnte, wenn Windows wüßte wie man die "Abspielt".

Beispiel ich definiere

resourcestring myResource = 'Abladabladuballa'

Wie sollte Windows denn jetzt 'Abladabladuballa' ausführen?

Aber
if myResource = 'Abladabladuballa' then mylabel:= tlabel.create,
else if myResource = 'humptadumpta' then myEdit :=TEdit.create etcc

Windows weiß weder wie es 'Abladabladuballa' noch wie es 'humptadumpta' ausführen soll, das weiß nur meine Anwendung, also z.B. meine delphiexe. Windows übergibt die dfm Resource an die Delphi exe, und ohne Delphi-Exe könnte Windows mit der dfm Resource gar nichts anfangen, oder?
Packe ich die dfm Resource in eine visual c++ exe, würde wohl auch keine Form erzeugt, Windows könnte damit nichts anfangen,
woher sollte Windows denn wissen, was es mit TWokiEasterInspiration tun soll, und das steht auch nicht in der dfm-resource, sondern im ausführbaren Code meiner Delphi-exe.

Also langer Rede kurzer Sinn, das Aussehen der Resourcen in der exe entspricht der binären Form der DFM-Datei und ist recht einfach lesbar, es ist vielleicht sogar naheliegend, das das so ist, ist aber nicht technisch zwingend, wenn ich das wollte könnte ich sicher eine dfm-datei als resource in eine exe speichern, und als Reaktion auf den Text TForm die Nachrichten der letzten Woche abspielen
statt eine Form zu erzeugen, und stattdessen bei 'x1&%45ajfsdlö' eine Windowsform zum Leben erwecken.

Also nochmal, allgemein gilt, Resourcen sind kein ausführbarer Code, was damit zu welchem Zeitpunkt passiert, entscheidet die Anwendung, auf keinen Fall Windows, es gibt allerdings von Windows vorgefertigte Resourcentypen, die den "Erklärungsaufwand" für die Anwendung minimieren.
  Mit Zitat antworten Zitat