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 Offline
    A Offline
    antonaras
    wrote on last edited by
    #1

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

    S T V D 4 Replies 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

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

      _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 2 Replies 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

        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