VS 2003 C++ Project (String bzw. Text (Dateien) als Resource statisch in code einbinden



  • Guiten Morgen Community,

    ich verwende VS 2003 (fragt nicht warum, aber ich muss). Und habe da ein C++ Project. Ich verwende QT (4.8) und will da Stylesheets nicht als String-Literal im code haben, sonder gern als Resource im Projekt haben, welche dann statisch gelinkt wird. Aber ich weiß nicht wie ich das anstellen soll.

    Hat jemand ne Idee oder einen Tipp was die beste Möglichkeit wäre?

    Vielen Dank



  • Also im QTCreator kann man alle möglichen Dateien als Ressource ins Projekt integrieren.
    Ich mache das gern mit Icons, Hintergrundbildern und auch Stylesheet ( qss-Files ). Es geht also prinzipiell. Aber wie man das dann in VS2003 bewerkstelligen würde, kann ich dir leider auch nicht sagen.

    Wenns gar nicht anders geht, lieferst du das Stylesheet-File halt einfach mit der Executable mit und lädst es beim Programmstart hoch.

        QFile file( "./frontend_style.qss" );
        if ( file.open( QFile::ReadOnly ) )
           MyStyleSheet = QLatin1String( file.readAll() );
    


  • Hallo @It0101 Danke für deinen Post,

    ja das habe ich auch schon in andren Forum so gesehen. Aber finde das nich sooo schön.. und des weiteren bekomme ich es es einfach nicht hin eine Datei ins Projekt einzubinden, welche dann beim "build" ins Ausgabe-Verzeichniss kopiert wird, als daran scheitere ich schon.

    Vll. kennt sich jemand mit "alten" VS Versionen aus, und kann mir hier helfen!?



  • Die Datei kannst Du einfach über einen Batch Befehl in einem Post-Build Event kopieren.
    Du kannst für die Datei sogar eine eigene Build-Regel definieren, die die Datei kopiert.



  • Hallo @Martin-Richter ja da bin ich schon drüber gestolpert,

    wenn ich eine Datei im der Solution anlege, und auf Eigenschaften gehe, habe ich unter "Custom Build Step"
    die Eigenschaften:
    "Command Line" => leer
    "Description" => "Perfomring Custom Build Step"
    "Outputs" => leer
    "Addtional Dependencies" => leer

    aber hier steht nich mit Post-Build Event!? 😞



  • Post-Build Events sind was anderes.

    Im Custom Build Step, definierst Du Ziel (Outputs), Quelle (Dependencies) und Aktion (Command).
    Ziel, sind die Dateien, die erzeugt werden sollen (also Dateien im Ausgabe Verzeichnis)
    Quelle, sind alle Dateien die, wenn sie sich geändert haben, die Aktion auslösen.
    Aktion ist was Du machen möchtest (REPLACE, COPY, XCOPY, ROBOCOPY)



  • Martin, danke für den Tipp, hat geklappt, so hab ich jetzt gemacht:

    "Command Line" => xcopy /S /I /Q /Y /F "(ProjectDir)Resources\Styles\TabWidget.gss" "(OutDir)\TabWidget.gss"*
    "Description" => "Perfomring Custom Build Step"
    "Outputs" => $(OutDir)\TabWidget.gss
    "Addtional Dependencies" => $(ProjectDir)Resources\Styles\TabWidget.gss

    EDIT: Aber eine Frage noch: Kann ich das auch mit nem kompletten Verzeichnis machen, so dass ich das nich für jede Datei machen muss!?



  • Definiere eine Datei für das Update und kopiere einfach alles.

    Oder kopiere grundsätzlich in Post-Build Prozess was Du willst!
    Außerdem kannst Du Makros benutzen und alle Dateien markieren und für alle den gleichen Copy Prozess definieren. Du musst nicht den Namen explizit angeben.
    Schau Dir die Rules an...



  • Guten Morgen:)

    Danke @Martin-Richter das hat mir sehr geholfen.. Top


Anmelden zum Antworten