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
  1. Home
  2. General Programming
  3. C / C++ / MFC
  4. ERROR 'strcpy' : cannot convert parameter 1 from 'TCHAR [20]' to 'char *'

ERROR 'strcpy' : cannot convert parameter 1 from 'TCHAR [20]' to 'char *'

Scheduled Pinned Locked Moved C / C++ / MFC
helpquestion
20 Posts 8 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.
  • P Offline
    P Offline
    Purish Dwivedi
    wrote on last edited by
    #1

    My code segment is as TCHAR ProxyHost[20]; strcpy(ProxyHost, m_proxy_host_ip); I am getting an error like 'strcpy' : cannot convert parameter 1 from 'TCHAR [20]' to 'char *' How can I solve this? Plz help me. Thanks

    _ T P 3 Replies Last reply
    0
    • P Purish Dwivedi

      My code segment is as TCHAR ProxyHost[20]; strcpy(ProxyHost, m_proxy_host_ip); I am getting an error like 'strcpy' : cannot convert parameter 1 from 'TCHAR [20]' to 'char *' How can I solve this? Plz help me. Thanks

      _ Offline
      _ Offline
      _AnsHUMAN_
      wrote on last edited by
      #2

      CString Management[^] Read this article rather than posting your questions related to type conversions.

      You need to google first, if you have "It's urgent please" mentioned in your question. ;-)_AnShUmAn_

      P 1 Reply Last reply
      0
      • _ _AnsHUMAN_

        CString Management[^] Read this article rather than posting your questions related to type conversions.

        You need to google first, if you have "It's urgent please" mentioned in your question. ;-)_AnShUmAn_

        P Offline
        P Offline
        Purish Dwivedi
        wrote on last edited by
        #3

        I have read that article. But not getting any help regarding this problem. Can u please tell me the solution? Thanks.

        C 1 Reply Last reply
        0
        • P Purish Dwivedi

          I have read that article. But not getting any help regarding this problem. Can u please tell me the solution? Thanks.

          C Offline
          C Offline
          Cedric Moonen
          wrote on last edited by
          #4

          This article[^] is probably better to understand what's going on. After that, take a look at the documentation of sctrpy to check which is the unicode independant version of the function.

          Cédric Moonen Software developer
          Charting control [v2.0] OpenGL game tutorial in C++

          1 Reply Last reply
          0
          • P Purish Dwivedi

            My code segment is as TCHAR ProxyHost[20]; strcpy(ProxyHost, m_proxy_host_ip); I am getting an error like 'strcpy' : cannot convert parameter 1 from 'TCHAR [20]' to 'char *' How can I solve this? Plz help me. Thanks

            T Offline
            T Offline
            ThatsAlok
            wrote on last edited by
            #5

            Purish Dwivedi wrote:

            I am getting an error like 'strcpy' : cannot convert parameter 1 from 'TCHAR [20]' to 'char *'

            use _tcscpy instead

            "Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
            Never mind - my own stupidity is the source of every "problem" - Mixture

            cheers, Alok Gupta VC Forum Q&A :- I/IV Support CRY- Child Relief and You

            P 1 Reply Last reply
            0
            • T ThatsAlok

              Purish Dwivedi wrote:

              I am getting an error like 'strcpy' : cannot convert parameter 1 from 'TCHAR [20]' to 'char *'

              use _tcscpy instead

              "Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
              Never mind - my own stupidity is the source of every "problem" - Mixture

              cheers, Alok Gupta VC Forum Q&A :- I/IV Support CRY- Child Relief and You

              P Offline
              P Offline
              Purish Dwivedi
              wrote on last edited by
              #6

              If it is 'strlen' : cannot convert parameter 1 from 'TCHAR [20]' to 'const char *' then what to do?

              _ R S 3 Replies Last reply
              0
              • P Purish Dwivedi

                If it is 'strlen' : cannot convert parameter 1 from 'TCHAR [20]' to 'const char *' then what to do?

                _ Offline
                _ Offline
                _AnsHUMAN_
                wrote on last edited by
                #7

                Do you need _tcslen?

                You need to google first, if you have "It's urgent please" mentioned in your question. ;-)_AnShUmAn_

                1 Reply Last reply
                0
                • P Purish Dwivedi

                  My code segment is as TCHAR ProxyHost[20]; strcpy(ProxyHost, m_proxy_host_ip); I am getting an error like 'strcpy' : cannot convert parameter 1 from 'TCHAR [20]' to 'char *' How can I solve this? Plz help me. Thanks

                  P Offline
                  P Offline
                  PCuong1983
                  wrote on last edited by
                  #8

                  try _tcscpy_s function instead strcpy function take a look in strpy definition strcpy work only ASCII , but TCHAR is char if Unicode is not defined or TCHAR is wchar_t if Unicode is defined

                  P 1 Reply Last reply
                  0
                  • P Purish Dwivedi

                    If it is 'strlen' : cannot convert parameter 1 from 'TCHAR [20]' to 'const char *' then what to do?

                    R Offline
                    R Offline
                    Rajesh R Subramanian
                    wrote on last edited by
                    #9

                    There is a boatload of CRT string manipulation functions. You can be kind enough not to add a query here for every single function that is referred to in your code. Just get to the documentation page[^] and click on the function that you're using. Then, choose the generic text mapping routine version (tchar.h routine) of that function. As an example, choose _tcsdec instead of _strdec. You might want to read about Using Generic Text-Mappings[^].

                    It is a crappy thing, but it's life -^ Carlo Pallini

                    P 1 Reply Last reply
                    0
                    • P PCuong1983

                      try _tcscpy_s function instead strcpy function take a look in strpy definition strcpy work only ASCII , but TCHAR is char if Unicode is not defined or TCHAR is wchar_t if Unicode is defined

                      P Offline
                      P Offline
                      Purish Dwivedi
                      wrote on last edited by
                      #10

                      Code Segment is token=strtok(userid,_T(";")); What about this error? 'strtok' : cannot convert parameter 2 from 'const wchar_t [2]' to 'const char *'

                      CPalliniC 1 Reply Last reply
                      0
                      • R Rajesh R Subramanian

                        There is a boatload of CRT string manipulation functions. You can be kind enough not to add a query here for every single function that is referred to in your code. Just get to the documentation page[^] and click on the function that you're using. Then, choose the generic text mapping routine version (tchar.h routine) of that function. As an example, choose _tcsdec instead of _strdec. You might want to read about Using Generic Text-Mappings[^].

                        It is a crappy thing, but it's life -^ Carlo Pallini

                        P Offline
                        P Offline
                        Purish Dwivedi
                        wrote on last edited by
                        #11

                        Code Segment is token=strtok(userid,_T(";")); What about this error? 'strtok' : cannot convert parameter 2 from 'const wchar_t [2]' to 'const char *'

                        R 1 Reply Last reply
                        0
                        • P Purish Dwivedi

                          Code Segment is token=strtok(userid,_T(";")); What about this error? 'strtok' : cannot convert parameter 2 from 'const wchar_t [2]' to 'const char *'

                          R Offline
                          R Offline
                          Rajesh R Subramanian
                          wrote on last edited by
                          #12

                          Is it really that difficult? Read my previous reply to you again. Go to the documentation page and click on strtok and choose the generic text mapping routine equivalent instead. You need to read on Unicode, Generic Text mappings, Internationalization, and string manipulation. You really need to.

                          It is a crappy thing, but it's life -^ Carlo Pallini

                          P 1 Reply Last reply
                          0
                          • R Rajesh R Subramanian

                            Is it really that difficult? Read my previous reply to you again. Go to the documentation page and click on strtok and choose the generic text mapping routine equivalent instead. You need to read on Unicode, Generic Text mappings, Internationalization, and string manipulation. You really need to.

                            It is a crappy thing, but it's life -^ Carlo Pallini

                            P Offline
                            P Offline
                            Purish Dwivedi
                            wrote on last edited by
                            #13

                            I have changed that. Now the new error is 'wcstok' : cannot convert parameter 1 from 'char [1000]' to 'wchar_t *' what should I do now?

                            R 1 Reply Last reply
                            0
                            • P Purish Dwivedi

                              I have changed that. Now the new error is 'wcstok' : cannot convert parameter 1 from 'char [1000]' to 'wchar_t *' what should I do now?

                              R Offline
                              R Offline
                              Rajesh R Subramanian
                              wrote on last edited by
                              #14

                              Purish Dwivedi wrote:

                              what should I do now?

                              You are looking for someone to give you an 'instant fix' (not to mention you post a query for every error of the same type) without even understanding your problem properly, which is essentially not going to help you in the longer run. I am wanting you to understand the basics so that you will be able to solve the problem yourself. Therefore, do what Cédric asked you to do[^]

                              It is a crappy thing, but it's life -^ Carlo Pallini

                              P 1 Reply Last reply
                              0
                              • R Rajesh R Subramanian

                                Purish Dwivedi wrote:

                                what should I do now?

                                You are looking for someone to give you an 'instant fix' (not to mention you post a query for every error of the same type) without even understanding your problem properly, which is essentially not going to help you in the longer run. I am wanting you to understand the basics so that you will be able to solve the problem yourself. Therefore, do what Cédric asked you to do[^]

                                It is a crappy thing, but it's life -^ Carlo Pallini

                                P Offline
                                P Offline
                                Purish Dwivedi
                                wrote on last edited by
                                #15

                                I'm not getting that what to do? Plz help me. thanks.

                                C 1 Reply Last reply
                                0
                                • P Purish Dwivedi

                                  I'm not getting that what to do? Plz help me. thanks.

                                  C Offline
                                  C Offline
                                  Cedric Moonen
                                  wrote on last edited by
                                  #16

                                  Purish Dwivedi wrote:

                                  I'm not getting that what to do?

                                  Look, people here are willing to help but if you don't want to put any effort yourself, then you can forget about it. The article I linked to you contains a lot of information about unicode and non-unicode builds. Once you have read the article, you will understand that to support both unicode and non-unicode builds, you will need to use TCHAR (and not char) and all the unicode-independant string manipulation routines (instead of strcpy, strlen, strtok, ...). For ALL of those functions, if you look in the MSDN documentation, you have a table that compares the different versions. You always have to use the "TCHAR.h routine" version.

                                  Cédric Moonen Software developer
                                  Charting control [v2.0] OpenGL game tutorial in C++

                                  R 1 Reply Last reply
                                  0
                                  • C Cedric Moonen

                                    Purish Dwivedi wrote:

                                    I'm not getting that what to do?

                                    Look, people here are willing to help but if you don't want to put any effort yourself, then you can forget about it. The article I linked to you contains a lot of information about unicode and non-unicode builds. Once you have read the article, you will understand that to support both unicode and non-unicode builds, you will need to use TCHAR (and not char) and all the unicode-independant string manipulation routines (instead of strcpy, strlen, strtok, ...). For ALL of those functions, if you look in the MSDN documentation, you have a table that compares the different versions. You always have to use the "TCHAR.h routine" version.

                                    Cédric Moonen Software developer
                                    Charting control [v2.0] OpenGL game tutorial in C++

                                    R Offline
                                    R Offline
                                    Rajesh R Subramanian
                                    wrote on last edited by
                                    #17

                                    Cedric Moonen wrote:

                                    unicode-independant string manipulation routines

                                    Would that be rather character set independent string manipulation routines? OK, I'm just being a nitpick. :-D

                                    It is a crappy thing, but it's life -^ Carlo Pallini

                                    C 1 Reply Last reply
                                    0
                                    • R Rajesh R Subramanian

                                      Cedric Moonen wrote:

                                      unicode-independant string manipulation routines

                                      Would that be rather character set independent string manipulation routines? OK, I'm just being a nitpick. :-D

                                      It is a crappy thing, but it's life -^ Carlo Pallini

                                      C Offline
                                      C Offline
                                      Cedric Moonen
                                      wrote on last edited by
                                      #18

                                      Rajesh R Subramanian wrote:

                                      Would that be rather character set independent string manipulation routines?

                                      To be honnest, I didn't know the exact terminology. Now I know :)

                                      Cédric Moonen Software developer
                                      Charting control [v2.0] OpenGL game tutorial in C++

                                      1 Reply Last reply
                                      0
                                      • P Purish Dwivedi

                                        Code Segment is token=strtok(userid,_T(";")); What about this error? 'strtok' : cannot convert parameter 2 from 'const wchar_t [2]' to 'const char *'

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

                                        It looks like you're doing a UNICODE build, but, neverthless, userid is declared as char * (or char userid[]) insetad of TCHAR * and, moreover, you're not using the generic text equivalent of strtok (i.e. _tcstok). :)

                                        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?

                                        1 Reply Last reply
                                        0
                                        • P Purish Dwivedi

                                          If it is 'strlen' : cannot convert parameter 1 from 'TCHAR [20]' to 'const char *' then what to do?

                                          S Offline
                                          S Offline
                                          softwaremonkey
                                          wrote on last edited by
                                          #20

                                          As someone else mentioned, it looks like you have some mixed UNICODE and ANSI problems. Ti make the code portable, make sure you have included "TCHAR.H" and use _tcslen instead of strlen. That should fix the problem. Tony

                                          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