Seite 1 von 1

Änderung Header -> Auswirkung auf dll ?

Verfasst: 6. April 2011 17:59
von Megadime
Hallo,
wenn ich eine dll und den entsprechenden Header einbinde (über den LIBS-Pfad) und dann in diesem Header eine stinknormale Definition einer Konstante (z.B. MSG_CLIENT 0x8000 + 1000) ändere (z.B. zu MSG_CLIENT 0x8000 + 1001), wird der Wert dann wirklich geändert, sobald er in der (alten) dll aufgerufen wird oder wurde dieser Wert beim Kompilieren sozusagen "fest" reingeschrieben? Mit "alt" mein ich, daß die dll mit dem unveränderten Header ausgeliefert wurde und dann nicht nochmal neu kompiliert wurde.
Grüße,
Megadime.

Verfasst: 6. April 2011 19:13
von upsala
Wenn ich einen C++-Code ändere und ihn nicht kompiliere ändert sich dann an der (nicht nocheinmal) erzeugten .so/.a/.dll/.exe/.. irgendetwas?

Verfasst: 6. April 2011 20:01
von Megadime
Eben. Das ist ja genau die Frage.

Es ist klar, daß sich die dll nicht ändert, meine Frage war aber, ob der Header die Werte der Konstanten vielleicht zur Laufzeit einsetzt.

Ich nehme an, du willst uns mitteilen, daß sich nichts ändert, d.h. die Werte gleich bleiben bzw. beim Kompilieren "fest" in den dll-Code eingebunden wurden.

Verfasst: 6. April 2011 22:16
von ScyllaIllciz
Genau so ist es. Wie soll das auch in die DLL/exe kommen, ohne kompilieren?

Verfasst: 7. April 2011 10:21
von RavenIV
Der Header beschreibt die Funktionen und Variablen (auch Defines), wie sie zum Zeitpunkt der Erstellung der DLL sind.
Änderst Du den Header, bleibt die DLL trotzdem so wie sie damals kompiliert wurde.
Was Du erreichst, ist dass die exe, die mit dem neuen, geänderten Header kompiliert wurde nicht richtig auf die DLL zugreifen kann.