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. conversion to _bstr_t - newbie

conversion to _bstr_t - newbie

Scheduled Pinned Locked Moved C / C++ / MFC
16 Posts 5 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.
  • A antonaras

    Hi guys can i convert integers and doubles to _bstr_t; if yes can you tell me how thanks a lot

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

    antonaras wrote:

    integers and doubles to _bstr_t;

    //Integer  TCHAR szStr[100];  wsprintf(szStr,"%d",100);  _bstr_t bstText(szStr); //Float  TCHAR szStr[100];  wsprintf(szStr,"%f",100.10);  _bstr_t bstText(szStr);

    "Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow

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

    S A 2 Replies Last reply
    0
    • T ThatsAlok

      antonaras wrote:

      integers and doubles to _bstr_t;

      //Integer  TCHAR szStr[100];  wsprintf(szStr,"%d",100);  _bstr_t bstText(szStr); //Float  TCHAR szStr[100];  wsprintf(szStr,"%f",100.10);  _bstr_t bstText(szStr);

      "Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow

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

      S Offline
      S Offline
      Sarath C
      wrote on last edited by
      #4

      ThatsAlok wrote:

      TCHAR szStr[100]; wsprintf(szStr,"%d",100);

      I think type defined by TCHAR has dependency to the current build environement(unicode/ MBCS). The compiler will define char array instead of unicode character array (wchar_t)in an MBCS environment. so there is a chance for error. I think, when it is better to declare wchar_t array instead of declaring TCHAR array since we are using wsprintf for formatting. what do u think? SaRath.
      "Don't Do Different things... Do Things Differently..."

      T 1 Reply Last reply
      0
      • T ThatsAlok

        antonaras wrote:

        integers and doubles to _bstr_t;

        //Integer  TCHAR szStr[100];  wsprintf(szStr,"%d",100);  _bstr_t bstText(szStr); //Float  TCHAR szStr[100];  wsprintf(szStr,"%f",100.10);  _bstr_t bstText(szStr);

        "Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow

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

        A Offline
        A Offline
        antonaras
        wrote on last edited by
        #5

        Thanks ThatsAlok I'm getting there is almost working how about doubles? Appreciate the help

        S T 2 Replies Last reply
        0
        • S Sarath C

          ThatsAlok wrote:

          TCHAR szStr[100]; wsprintf(szStr,"%d",100);

          I think type defined by TCHAR has dependency to the current build environement(unicode/ MBCS). The compiler will define char array instead of unicode character array (wchar_t)in an MBCS environment. so there is a chance for error. I think, when it is better to declare wchar_t array instead of declaring TCHAR array since we are using wsprintf for formatting. what do u think? SaRath.
          "Don't Do Different things... Do Things Differently..."

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

          SaRath C wrote:

          I think type defined by TCHAR has dependency to the current build environement(unicode/ MBCS). The compiler will define char array instead of unicode character array (wchar_t)in an MBCS environment. so there is a chance for error.

          Actually TCHAR is defined as :-

          #ifdef UNICODE
           #define TCHAR wchar_t
           #else
           #define TCHAR char
           #endif

          so you can use in both Character set. plus little mistake from my side too, wsprintf should be written something like this to make it character set independent

          wsprintf(szChar,_T("%d"),100);

          "Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow

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

          1 Reply Last reply
          0
          • S Sarath C

            _bstr_t is a type which can hold unicode string. CString strText; // format the value to CString strText.Format("%d",nValue); call strText.AllocSysString(); to convert SaRath.
            "Don't Do Different things... Do Things Differently..."

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

            SaRath C wrote:

            _bstr_t is a type which can hold unicode string.

            you getting very fast :)

            "Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow

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

            1 Reply Last reply
            0
            • A antonaras

              Thanks ThatsAlok I'm getting there is almost working how about doubles? Appreciate the help

              S Offline
              S Offline
              Sarath C
              wrote on last edited by
              #8

              You will get the expected string depends on the format specifier you are specifying http://msdn2.microsoft.com/en-us/library/75w45ekt.aspx[^] SaRath.
              "Don't Do Different things... Do Things Differently..."

              1 Reply Last reply
              0
              • A antonaras

                Thanks ThatsAlok I'm getting there is almost working how about doubles? Appreciate the help

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

                antonaras wrote:

                how about doubles?

                use %e format

                "Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow

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

                A 1 Reply Last reply
                0
                • S Sarath C

                  _bstr_t is a type which can hold unicode string. CString strText; // format the value to CString strText.Format("%d",nValue); call strText.AllocSysString(); to convert SaRath.
                  "Don't Do Different things... Do Things Differently..."

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

                  SaRath C wrote:

                  call strText.AllocSysString(); to convert

                  there can Memory Leak problem here!

                  "Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow

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

                  1 Reply Last reply
                  0
                  • T ThatsAlok

                    antonaras wrote:

                    how about doubles?

                    use %e format

                    "Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow

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

                    A Offline
                    A Offline
                    antonaras
                    wrote on last edited by
                    #11

                    Hey ThatsAlok i tried your code and it works fine with integers but i have double valField4; TCHAR szStr2[100]; wsprintf(szStr2,"%e",valField4); _bstr_t bstText2(szStr2); printf("%s\n",(LPCSTR)bstText2); the otput for bstText2 that i get is e why does that happen thanks again

                    1 Reply Last reply
                    0
                    • A antonaras

                      Hi guys can i convert integers and doubles to _bstr_t; if yes can you tell me how thanks a lot

                      V Offline
                      V Offline
                      Viorel
                      wrote on last edited by
                      #12

                      If you are familiar with STL, you can use one more method:

                      int i = 1234567;
                      double d = 123.4567;
                      _bstr_t s1, s2;
                      
                      // convert integer
                      {
                          std::ostrstream os;
                          os << i << std::ends;
                          s1 = os.str();
                      }
                      // convert double
                      {
                          std::ostrstream os;
                          os << d << std::ends;
                          s2 = os.str();
                      }
                      
                      A 1 Reply Last reply
                      0
                      • V Viorel

                        If you are familiar with STL, you can use one more method:

                        int i = 1234567;
                        double d = 123.4567;
                        _bstr_t s1, s2;
                        
                        // convert integer
                        {
                            std::ostrstream os;
                            os << i << std::ends;
                            s1 = os.str();
                        }
                        // convert double
                        {
                            std::ostrstream os;
                            os << d << std::ends;
                            s2 = os.str();
                        }
                        
                        A Offline
                        A Offline
                        antonaras
                        wrote on last edited by
                        #13

                        Thanks Viorel i tried your code but i get lots of compilation errors 'ostrstream' : undeclared identifier syntax error : missing ';' before identifier 'os' 'os' : undeclared identifier and so on what i'm doing wrong i have included string is there anything else i need to include thanks

                        V 1 Reply Last reply
                        0
                        • A antonaras

                          Thanks Viorel i tried your code but i get lots of compilation errors 'ostrstream' : undeclared identifier syntax error : missing ';' before identifier 'os' 'os' : undeclared identifier and so on what i'm doing wrong i have included string is there anything else i need to include thanks

                          V Offline
                          V Offline
                          Viorel
                          wrote on last edited by
                          #14

                          In order to use these STL features, you have to include a header file:

                          #include <strstream>
                          

                          Next, you may receive an "unresolved external symbol" error displayed by the linker. In this case, you have to make one more addition: specify "comsuppwd.lib" in the "Linker --> Input --> Additional Dependencies" configuration option of your project. (In release compilation mode, specify "comsuppw.lib"). You can always see which header file or library is required by analyzing the descriptions in MSDN.

                          A 1 Reply Last reply
                          0
                          • V Viorel

                            In order to use these STL features, you have to include a header file:

                            #include <strstream>
                            

                            Next, you may receive an "unresolved external symbol" error displayed by the linker. In this case, you have to make one more addition: specify "comsuppwd.lib" in the "Linker --> Input --> Additional Dependencies" configuration option of your project. (In release compilation mode, specify "comsuppw.lib"). You can always see which header file or library is required by analyzing the descriptions in MSDN.

                            A Offline
                            A Offline
                            antonaras
                            wrote on last edited by
                            #15

                            thanks Viorel is working fine now thanks for all the help

                            1 Reply Last reply
                            0
                            • A antonaras

                              Hi guys can i convert integers and doubles to _bstr_t; if yes can you tell me how thanks a lot

                              D Offline
                              D Offline
                              David Crow
                              wrote on last edited by
                              #16

                              antonaras wrote:

                              can i convert integers and doubles to _bstr_t;

                              Just assign them:

                              double d;
                              int x;
                              _bstr_t str;
                              str = d;
                              str = (long) x;


                              "The largest fire starts but with the smallest spark." - David Crow

                              "Judge not by the eye but by the heart." - Native American Proverb

                              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