Resource ID aendern



  • hallo,

    ich hatte mal manuell die ID fuer ein Dialog oder Control in resource.h veraendert, dann gab es runtime error. ich wollte mal wissen wie man die ID aendern kann und falls schief laeuft und wie ich das wiederherstellen kann?



  • Wenn es dadurch zu keinen Kollisionen kommt, dann kannst du die ID einfach in resource.h ändern. Kann sein dass du danach nochmal "rebuild all" machen musst, aber grundsätzlich spricht da nix dagegen.

    Mit Kollisionen meine ich: es dürfen natürlich nie zwei Dinge die selbe ID haben, die z.B. im selben Dialog verwendet werden. Am einfachsten ist vermutlich, wenn du eine ganz neue ID verwendest, also eine die in resource.h noch gar nicht vorkommt. Damit solltest du auf der sicheren Seite sein.

    Und natürlich nochwas: du musst u.U. den Wert des Defines _APS_NEXT_RESOURCE_VALUE (auch in resource.h - üblicherweise ganz unten) anpassen.



  • Wichtig ist, das Programm zu bereinigen und komplett neu zu komplieren.
    Nur so kannst du sicher sein, dass die ID auch wirklich den neuen Wert erhält.


  • Mod

    Hintergrund: Die Resource.h hat einen speziellen Eintrag im Kopf (//{{NO_DEPENDENCIES}}), der die normale Abhängigkeitskette durchbricht. Eine Änderung der resource.h hätte sonst in MFC Projekten zur Folge, dass fast alle Dateien neu kompiliert werden müssten.



  • hab ich mittlerweile auch gemerkt, muessen denn die folgende werte auch mitveraendert werden?

    #define _APS_NEXT_RESOURCE_VALUE        107
    #define _APS_NEXT_COMMAND_VALUE         32771
    #define _APS_NEXT_CONTROL_VALUE         1009
    #define _APS_NEXT_SYMED_VALUE           101
    

  • Mod

    Damit manbei neu vergebenen Controls/Ressourcen auch neue IDs bekommt wäre es am Besten.


Anmelden zum Antworten