Resourcen Problem : fatal error RC1004



  • Hallo
    Ich arbeite mit Vicual C++ 2005 Express Edition.
    Wenn ich eine Resource einbinden will, kommt immer folgender fehler:

    .\resource.h(8) : fatal error RC1004: unexpected end of file found
    

    Hier ist meine resource.rc:

    #include "resource.h"
    
    ID_ICON_0 ICON "icon.ico"
    

    und hier meine resourcemh:

    #include <windows.h>
    
    #define ID_ICON_0 100
    

    Muss ich noch irgendwas in die resource.h reinschreiben oder warum funktioniert das nicht?

    Danke schonmal im voraus



  • Ich glaube eher, die <windows.h> ist zu viel für den Ressourcen-Compiler. Wurde die Zeile dort automatisch vom Visual Studio eingefügt oder hast du die manuell ergänzt?



  • ich habe es von hand gscrieben.
    es macht aber keinen unterschied ob ich es einbinde oder nicht.
    es funktioniert nur wenn die datei leer ist (noch nicht mal // darf drinnstehen), oder natürlich wenn ich sie gar nicht erst include.
    naja dann muss ich halt alles in die .rc datei packen...

    nun zu einem anderen problem. wenn ich die resource hinzufüge hat die .exe sofort das icon ohne das ich es mit LoadIcon() Laden musste, bei dem icon links neben dem titel allerding nicht.
    das ist doch auch nicht normal oder?

    weis jemand rat?



  • the-coder schrieb:

    ich habe es von hand gscrieben.
    es macht aber keinen unterschied ob ich es einbinde oder nicht.
    es funktioniert nur wenn die datei leer ist (noch nicht mal // darf drinnstehen), oder natürlich wenn ich sie gar nicht erst include.
    naja dann muss ich halt alles in die .rc datei packen...

    Setz doch mal hinter den #define eine Leerzeile (und schau in der MSDN nach, was die zu RC1004 zu melden hat).

    nun zu einem anderen problem. wenn ich die resource hinzufüge hat die .exe sofort das icon ohne das ich es mit LoadIcon() Laden musste, bei dem icon links neben dem titel allerding nicht.
    das ist doch auch nicht normal oder?

    Soweit ich weiß, bekommt eine WindAPI-Exe automatisch das erste Icon als Programmsymbol (im Explorer) zugewiesen, das sie mitbringt. LoadIcon() stellt nur die Symbole ein, mit denen sich das Programm zur Laufzeit schmückt.



  • CStoll (off) schrieb:

    Setz doch mal hinter den #define eine Leerzeile.

    Genau das wars.

    CStoll (off) schrieb:

    Soweit ich weiß, bekommt eine WindAPI-Exe automatisch das erste Icon als Programmsymbol (im Explorer) zugewiesen, das sie mitbringt. LoadIcon() stellt nur die Symbole ein, mit denen sich das Programm zur Laufzeit schmückt.

    Soweit ich das jetzt herausgefunden habe hast du recht. Nur eine Ausnahme: Heißt irgendeins dieser Icons icon.ico wird dieses verwendet.

    OK damit sind alle Probleme beseitigt 🙂

    THX to all bzw CStoll (off) 😉



  • vielleicht hast Du einen Fehler beim Erstellen der Datei (kann auch ein Fehler auf der Festplatte sein). Lösch sie oder verschiebe sie und erstelle sie noch mal (steht ja nicht viel drin 🕶 )



  • meinst du die resource.h?
    Das Problem is längst gelöst. #define hat ja kein ; am Ende sondern es ist dann zu Ende wenn eine neue Zeile anfängt, da es aber keine neue Zeile gab hat es (glaub ich) genau die gleiche Auswirkung als ob man hinter einer funktion das ; vergisst 😉


Anmelden zum Antworten