Warum muss man .rc file auch im Hauptmodul linken, wenn es schon im Submodul gelinkt wurde?
-
Mit gcc schreibe ich eine kleines Tool, welches einen Dialog (WinApi) verwendet. Als IDE verwende ich CodeBloxx. Jetzt habe ich ein Projekt, welches ich SubP nennen möchte. Das Ziel ist eine .a Datei (Library). In der IDE binde ich in den Workspace von SubP eine .rc Datei ein, die die Definitionen für den Dialog enthält. Der Compiler erstellt daraus eine .res Datei, von der ich eigentlich erwartet hätte, dass sie mit der .a Datei verlinkt wird.
Ein weiteres Projekt, welches die .a verwendet, nenne ich MainP.
Wenn ich die gleiche .rc Datei zu dem Workspace von MainP hinzufüge und das Compilat mit der .a Datei verlinke (unter Build Options, Linker wurde die .a Datei angegeben) funktioniert alles. Lasse ich die .rc Datei aber in dem Workspace von MainP weg, dann werden die Dialoge nicht geöffnet.
Das ist doch irgendwie unlogisch!
Ich brauche doch die .rc Datei nur einmal in SubP zu linken, oder?
-
.rc und .res Dateien können nicht in Objekt Dateien eingebunden werden.
Ressourcen Dateien werden erst in der letzten Linker Phase in die Exe eingebunden..rc du .res Dateien können nie in statische Libraries eingebunden werden.
-
Ok, und wie muss ich die Ressourcen dann behandeln, damit sie mit in die statische lib rein gelangen? Kann man aus der Resource auch eine .o Datei erzeugen? Muss ja nicht unbedingt .rc oder .res sein. Gibt es da nicht auch noch mehr Formate für Ressourcen?
-
Ach ja, ich benutze RedEdit1.5
-
Du kannst aus der RC Datei eine eigene include Datei bauen, die Du wieder in die eine andere RC Datei includest. Du musst aber auf Überschneidungen der IDs achten.