Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
CODE PROJECT For Those Who Code
  • Home
  • Articles
  • FAQ
Community
  1. Home
  2. General Programming
  3. C / C++ / MFC
  4. how to convert string to resource ID

how to convert string to resource ID

Scheduled Pinned Locked Moved C / C++ / MFC
helptutorialquestionlearning
21 Posts 7 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • R Offline
    R Offline
    ronovice
    wrote on last edited by
    #1

    I have Resource ID (for a stringtable value)in string format. ex ("IDS_VALUE"). How can i convert it into ID format (UINT) to get the the string using LoadString method. If anybody come across the problem .pls let me know the solution. Advance thanks!

    CPalliniC C K 3 Replies Last reply
    0
    • R ronovice

      I have Resource ID (for a stringtable value)in string format. ex ("IDS_VALUE"). How can i convert it into ID format (UINT) to get the the string using LoadString method. If anybody come across the problem .pls let me know the solution. Advance thanks!

      CPalliniC Offline
      CPalliniC Offline
      CPallini
      wrote on last edited by
      #2

      Just curiosity: how can be you have just the string? :)

      If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler. -- Alfonso the Wise, 13th Century King of Castile.
      This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong. -- Iain Clarke
      [My articles]

      In testa che avete, signor di Ceprano?

      R 1 Reply Last reply
      0
      • CPalliniC CPallini

        Just curiosity: how can be you have just the string? :)

        If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler. -- Alfonso the Wise, 13th Century King of Castile.
        This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong. -- Iain Clarke
        [My articles]

        R Offline
        R Offline
        ronovice
        wrote on last edited by
        #3

        the string containing the ID was "composed" using predefined strings from a XML file.

        modified on Thursday, January 7, 2010 3:36 AM

        K CPalliniC 2 Replies Last reply
        0
        • R ronovice

          the string containing the ID was "composed" using predefined strings from a XML file.

          modified on Thursday, January 7, 2010 3:36 AM

          K Offline
          K Offline
          KingsGambit
          wrote on last edited by
          #4

          Intead of "IDS_VALUE", you can keep the actual integer values like "2344" in the XML file. And you can easily convert the "2344" to 2344 by using atoi().

          R 1 Reply Last reply
          0
          • K KingsGambit

            Intead of "IDS_VALUE", you can keep the actual integer values like "2344" in the XML file. And you can easily convert the "2344" to 2344 by using atoi().

            R Offline
            R Offline
            ronovice
            wrote on last edited by
            #5

            this was an idea, but i want to keep the xml file readable. if a tag is 2344 instead of NAME (e.g.), it will be difficult to do that.

            L 1 Reply Last reply
            0
            • R ronovice

              this was an idea, but i want to keep the xml file readable. if a tag is 2344 instead of NAME (e.g.), it will be difficult to do that.

              L Offline
              L Offline
              lxkjlzz
              wrote on last edited by
              #6

              Directly to put forward a corresponding relationship between int an string :-D

              1 Reply Last reply
              0
              • R ronovice

                the string containing the ID was "composed" using predefined strings from a XML file.

                modified on Thursday, January 7, 2010 3:36 AM

                CPalliniC Offline
                CPalliniC Offline
                CPallini
                wrote on last edited by
                #7

                You should maintain both the string value and the corrensponding numeric one inside the XML file. IMHO you've no way other than parsing the resource.h in order to decode the string (BTW why are you building a XML replica of the resource.h file?). :)

                If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler. -- Alfonso the Wise, 13th Century King of Castile.
                This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong. -- Iain Clarke
                [My articles]

                In testa che avete, signor di Ceprano?

                R 1 Reply Last reply
                0
                • CPalliniC CPallini

                  You should maintain both the string value and the corrensponding numeric one inside the XML file. IMHO you've no way other than parsing the resource.h in order to decode the string (BTW why are you building a XML replica of the resource.h file?). :)

                  If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler. -- Alfonso the Wise, 13th Century King of Castile.
                  This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong. -- Iain Clarke
                  [My articles]

                  R Offline
                  R Offline
                  ronovice
                  wrote on last edited by
                  #8

                  Thank you. I will use a map eventually (the xml file will remain the same). There is a strong relation between stringtable values in resources and the data from the xml file, but is not a replica :).

                  K L 2 Replies Last reply
                  0
                  • R ronovice

                    Thank you. I will use a map eventually (the xml file will remain the same). There is a strong relation between stringtable values in resources and the data from the xml file, but is not a replica :).

                    K Offline
                    K Offline
                    KingsGambit
                    wrote on last edited by
                    #9

                    Using a map would be fine.

                    1 Reply Last reply
                    0
                    • R ronovice

                      Thank you. I will use a map eventually (the xml file will remain the same). There is a strong relation between stringtable values in resources and the data from the xml file, but is not a replica :).

                      L Offline
                      L Offline
                      Lost User
                      wrote on last edited by
                      #10

                      You can also use strings rather than integers to refer to your resource items. If you do not give resource names a #define value, then you can refer to them by the name as string value, rather than its integer equivalent.

                      R 1 Reply Last reply
                      0
                      • R ronovice

                        I have Resource ID (for a stringtable value)in string format. ex ("IDS_VALUE"). How can i convert it into ID format (UINT) to get the the string using LoadString method. If anybody come across the problem .pls let me know the solution. Advance thanks!

                        C Offline
                        C Offline
                        cmk
                        wrote on last edited by
                        #11

                        Not possible. IDS_VALUE is a #define, these are resolved by the preprocessor and are not preserved as strings anywhere in the object files.

                        ...cmk The idea that I can be presented with a problem, set out to logically solve it with the tools at hand, and wind up with a program that could not be legally used because someone else followed the same logical steps some years ago and filed for a patent on it is horrifying. - John Carmack

                        R L 2 Replies Last reply
                        0
                        • L Lost User

                          You can also use strings rather than integers to refer to your resource items. If you do not give resource names a #define value, then you can refer to them by the name as string value, rather than its integer equivalent.

                          R Offline
                          R Offline
                          ronovice
                          wrote on last edited by
                          #12

                          i dont't want to use #define because i use stringtables for different languages. a map seems to fit to my needs.

                          L 1 Reply Last reply
                          0
                          • C cmk

                            Not possible. IDS_VALUE is a #define, these are resolved by the preprocessor and are not preserved as strings anywhere in the object files.

                            ...cmk The idea that I can be presented with a problem, set out to logically solve it with the tools at hand, and wind up with a program that could not be legally used because someone else followed the same logical steps some years ago and filed for a patent on it is horrifying. - John Carmack

                            R Offline
                            R Offline
                            ronovice
                            wrote on last edited by
                            #13

                            thanks! it was worth a try! i will use a map (as the best idea for the moment)!

                            1 Reply Last reply
                            0
                            • R ronovice

                              i dont't want to use #define because i use stringtables for different languages. a map seems to fit to my needs.

                              L Offline
                              L Offline
                              Lost User
                              wrote on last edited by
                              #14

                              ronovice wrote:

                              i dont't want to use #define

                              That is what I was trying to explain in my previous post. If you do not use #define then the resource names can be accessed by their actual name as extracted from your XML, no need for a map or any other type of transform.

                              R 1 Reply Last reply
                              0
                              • C cmk

                                Not possible. IDS_VALUE is a #define, these are resolved by the preprocessor and are not preserved as strings anywhere in the object files.

                                ...cmk The idea that I can be presented with a problem, set out to logically solve it with the tools at hand, and wind up with a program that could not be legally used because someone else followed the same logical steps some years ago and filed for a patent on it is horrifying. - John Carmack

                                L Offline
                                L Offline
                                Lost User
                                wrote on last edited by
                                #15

                                cmk wrote:

                                Not possible.

                                Untrue; if you do not equate a resource name to an integer value, then you can address it by the actual string name. [edit]My apologies, this does not hold true for STRINGTABLE entries.[/edit]

                                modified on Thursday, January 7, 2010 8:12 AM

                                C 1 Reply Last reply
                                0
                                • L Lost User

                                  ronovice wrote:

                                  i dont't want to use #define

                                  That is what I was trying to explain in my previous post. If you do not use #define then the resource names can be accessed by their actual name as extracted from your XML, no need for a map or any other type of transform.

                                  R Offline
                                  R Offline
                                  ronovice
                                  wrote on last edited by
                                  #16

                                  i wanted to use LoadString method which will need as parameter a UINT, but i have only the string . How can I get from resources the text associated with that UINT if i cant convert the string to UINT ID? if there is another solution(even without using LoadString), I will gladly use it.

                                  L 1 Reply Last reply
                                  0
                                  • R ronovice

                                    i wanted to use LoadString method which will need as parameter a UINT, but i have only the string . How can I get from resources the text associated with that UINT if i cant convert the string to UINT ID? if there is another solution(even without using LoadString), I will gladly use it.

                                    L Offline
                                    L Offline
                                    Lost User
                                    wrote on last edited by
                                    #17

                                    You could try using FindResourceEx()[^] rather than trying to access it directly. This should allow you to use the name as a string and also to select which language you wish the string to be in. [edit]My apologies, this does not hold true for STRINGTABLE entries, although you could possibly use a user defined resource type.[/edit]

                                    modified on Thursday, January 7, 2010 8:14 AM

                                    1 Reply Last reply
                                    0
                                    • R ronovice

                                      I have Resource ID (for a stringtable value)in string format. ex ("IDS_VALUE"). How can i convert it into ID format (UINT) to get the the string using LoadString method. If anybody come across the problem .pls let me know the solution. Advance thanks!

                                      K Offline
                                      K Offline
                                      KarstenK
                                      wrote on last edited by
                                      #18

                                      write in the resource file IDS_VALUE "IDS_VALUE" oh my god :doh: :doh: :doh:

                                      Press F1 for help or google it. Greetings from Germany

                                      1 Reply Last reply
                                      0
                                      • L Lost User

                                        cmk wrote:

                                        Not possible.

                                        Untrue; if you do not equate a resource name to an integer value, then you can address it by the actual string name. [edit]My apologies, this does not hold true for STRINGTABLE entries.[/edit]

                                        modified on Thursday, January 7, 2010 8:12 AM

                                        C Offline
                                        C Offline
                                        cmk
                                        wrote on last edited by
                                        #19

                                        Yeah, RT_STRING's screw things up, you can't even FindResource() on them without jumping through hoops. e.g. Given: IDS_STRING as a String Table entry // Fails hnd = FindResource(mod, MAKEINTRESOURCE(IDS_STRING), RT_STRING); // Works id_string = MAKEINTRESOURCE((LOWORD(IDS_STRING)>>4)+1); hnd = FindResource(mod, id_string, RT_STRING); ... let alone getting the size, or loading the string without using LoadString().

                                        ...cmk The idea that I can be presented with a problem, set out to logically solve it with the tools at hand, and wind up with a program that could not be legally used because someone else followed the same logical steps some years ago and filed for a patent on it is horrifying. - John Carmack

                                        R L 2 Replies Last reply
                                        0
                                        • C cmk

                                          Yeah, RT_STRING's screw things up, you can't even FindResource() on them without jumping through hoops. e.g. Given: IDS_STRING as a String Table entry // Fails hnd = FindResource(mod, MAKEINTRESOURCE(IDS_STRING), RT_STRING); // Works id_string = MAKEINTRESOURCE((LOWORD(IDS_STRING)>>4)+1); hnd = FindResource(mod, id_string, RT_STRING); ... let alone getting the size, or loading the string without using LoadString().

                                          ...cmk The idea that I can be presented with a problem, set out to logically solve it with the tools at hand, and wind up with a program that could not be legally used because someone else followed the same logical steps some years ago and filed for a patent on it is horrifying. - John Carmack

                                          R Offline
                                          R Offline
                                          ronovice
                                          wrote on last edited by
                                          #20

                                          Thanks. i will try this!

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • World
                                          • Users
                                          • Groups