001
03.08.2005, 10:04 Uhr
RHBaum
|
Deine Ressource-Include sind nur defines .... sie definieren dir eigentlich nur FIX nen Int wert, nix weiter ....
Deine eigentlichen ressourcen (Strings, Dialoge, Icons, Bilder) werden beim compilieren in den statischen Datenteil des Programms / der Dll abgelegt, und mit dem Identifier (int)versehen.
Um zur laufzeit von deinem Programm den zeiger auf den statischen datenteil, und da genau auf die ressource die du mit dem int indentifizierst, zu bekommen, musst du spezielle funktionen aufrufen ... LoadRessource allgemein, oder LoadString , LoadIcon als spezialisierte Version.
Das coole daran ist .... du kannst mehrere saetze von ressourcen mit den gleichen typ und ID haben, und beim compilieren austauschen .... so kannst z.b. deine stringtabelle in deutsch schreiben, exportieren , uebersetzen lassen, wieder importieren fuern anderes laenderschema ... und dann im compiler mittels eines clicks von deutsch auf englisch umschalten ... oder dir sogar unterschiedliche compiler configs erstellen, wo nach wahl ne deutsche oder engl. exe erstellst ....
Macht man aber seltener deswegen, wenn man das braucht, man geht eher dann gleich noch nen schritt weiter .... man compiliert die ressourcen komplett in ne eigenstaendige Dll, und holt sich die ressourcen daraus, wobei man vorher die dll dynamisch anzieht, also dann echt zur laufzeit bestimmen kann, welche dll, und damit welche sprache angezeigt wird ....
Vorteil der ressourcen allgemein, ist das man die ressourcen zentral hat, und keine so komischen c files braucht die nur Texte definieren .... bisserl flexibler und eleganter halt ...
Ciao ... Dieser Post wurde am 03.08.2005 um 10:05 Uhr von RHBaum editiert. |