Commandline String in Int umwandeln



  • Hallo,

    ich bin grad total verzweifelt, seit stunden versuche ich den string
    den ich über m_lpCmdLine an meine mfc anwendung übergebe
    in einen integer wert umzuwandeln, doch leider ohne erfolg =(((

    int MyInt = 1234;
    if ( m_lpCmdLine != NULL )
    {
        CString TmpStr(m_lpCmdLine);
        std::string valueAsString( TmpStr); //hier meckert der compiler
        std::istringstream in( valueAsString ); 
        in >> MyInt;
    }
    

    .....cpp(140): error C2664: 'std::basic_string<_Elem,_Traits,_Ax>::basic_string(const std::basic_string<_Elem,_Traits,_Ax>::_Alloc &)': Konvertierung des Parameters 1 von 'CString' in 'const std::basic_string<_Elem,_Traits,_Ax>::_Alloc &' nicht möglich
    with
    [
    _Elem=char,
    _Traits=std::char_traits<char>,
    _Ax=std::allocator<char>
    ]
    and
    [
    _Elem=char,
    _Traits=std::char_traits<char>,
    _Ax=std::allocator<char>
    ]

    hüüüülfe 😞



  • Warum nicht

    std::string sCommandLine(m_lpCmdLine);
    

    ???

    oder wenn du unbedingt CString drin haben willst ...

    CString my_string(m_lpCmdLine);
    std::string sCommandLine(my_string.GetBuffer());
    

    ...



  • oh danke für die schnelle antwort,
    aber das funktioniert leider auch nicht. 😞

    int MyInt = 1234; 
    if ( m_lpCmdLine != NULL ) 
    { 
        std::string sCommandLine(m_lpCmdLine);//hier meckert der compiler 
        std::istringstream in( sCommandLine ); 
        in >> MyInt; 
    }
    

    .....cpp(141): error C2664: 'std::basic_string<_Elem,_Traits,_Ax>::basic_string(const std::basic_string<_Elem,_Traits,_Ax>::_Alloc &)': Konvertierung des Parameters 1 von 'LPTSTR' in 'const std::basic_string<_Elem,_Traits,_Ax>::_Alloc &' nicht möglich
    with
    [
    _Elem=char,
    _Traits=std::char_traits<char>,
    _Ax=std::allocator<char>
    ]
    and
    [
    _Elem=char,
    _Traits=std::char_traits<char>,
    _Ax=std::allocator<char>
    ]

    und

    int MyInt = 1234; 
    if ( m_lpCmdLine != NULL ) 
    { 
    	CString my_string(m_lpCmdLine); 
    	std::string sCommandLine(my_string.GetBuffer()); //hier meckert der compiler
        std::istringstream in( sCommandLine ); 
        in >> MyInt; 
    }
    

    ......cpp(142): error C2664: 'std::basic_string<_Elem,_Traits,_Ax>::basic_string(const std::basic_string<_Elem,_Traits,_Ax>::_Alloc &)': Konvertierung des Parameters 1 von 'ATL::CSimpleStringT<BaseType>::PXSTR' in 'const std::basic_string<_Elem,_Traits,_Ax>::_Alloc &' nicht möglich
    with
    [
    _Elem=char,
    _Traits=std::char_traits<char>,
    _Ax=std::allocator<char>
    ]
    and
    [
    BaseType=TCHAR
    ]
    and
    [
    _Elem=char,
    _Traits=std::char_traits<char>,
    _Ax=std::allocator<char>
    ]


  • Mod

    Wahrscheinlich hast Du ein Unicode Projekt. In diesem Fall musst Du std::wstring verwenden!



  • huhu,
    auch das hilft leider nicht =((

    int MyInt = 1234; 
    if ( m_lpCmdLine != NULL ) 
    { 
        CString my_string(m_lpCmdLine); 
        std::wstring sCommandLine(my_string.GetBuffer()); //hier meckert der compiler 
        std::istringstream in( sCommandLine ); 
        in >> MyInt; 
    }
    

    .....cpp(143): error C2664: 'std::basic_istringstream<_Elem,_Traits,_Alloc>::basic_istringstream(std::_Iosb<_Dummy>::openmode)': Konvertierung des Parameters 1 von 'std::wstring' in 'std::_Iosb<_Dummy>::openmode' nicht möglich
    with
    [
    _Elem=char,
    _Traits=std::char_traits<char>,
    _Alloc=std::allocator<char>,
    _Dummy=int
    ]
    and
    [
    _Dummy=int
    ]

    hach und das kauderwelsch der fehlermeldungen bringt zumindestens mich
    auch kein stück weiter



  • hmm sicher das der da meckert ... normal nicht ^^ muss nähmlich std::wistringstream heißen wenn de UNICODE an hast ...



  • OH MEIN GOTT

    danke danke danke es funktioniert,
    komm her und lass dich abknutschen 😃

    geschlagene 5 stunden sitz ich da nun schon dran

    *volldollfroi*

    einen schönes restwochenende wünsch ich dir =))))


Anmelden zum Antworten