CString zu UINT konvertieren



  • Hallo,

    ich hab folgenden Code:

    CString bla;
    bla.getdata();
    

    in bla steht jetzt VT_BSTR und ich würde gerne aus diesem String wieder eine UINT machen. Hab da auch schon was gefunden, jedoch gibt es bei diesem Code immer nur den Wert 0 zurück.

    UINT test;
    test=atoi(LPCTSTR(bla.gedata()));
    

    normalerweise müsste das ja den Wert 8 wieder zurückgeben. Was ist falsch? Habt ihr Ideen?
    Gruß Michael


  • Mod

    1. Hast Du vermutlich ein MBCS Programm.
    2. Bügelt gibt Deine Funktion ja einen BSTR zurück!
    3. Damit bügelt Dein cast LPCTSTR die Compilerfehlermeldung weg.
    4. Die Du nicht bekommen würdest wenn Du die richtige Funktion für diesen Typ verwenden würdest: _wtoi

    BTW: Wird der BSTR auch freigegeben von Dir?



  • Hallo.
    Danke Martin, dass du dich schon so schnell gemeldet hast. Leider konnte ich deiner Antwort nicht ganz folgen und stehe somit immernoch ohne Lösung da. Aber Step by Step...

    Martin Richter schrieb:

    1. Hast Du vermutlich ein MBCS Programm.

    Da hab ich mich gerade ein bisschen einlesen und muss dir sagen,dass ich das gar nicht so genau weiß. Ich benutze MV C++ 2003 und weiß leider nicht ob dort schon UNICODE verwendet wird.

    Martin Richter schrieb:

    2. Bügelt gibt Deine Funktion ja einen BSTR zurück!

    Mit der Aussage konnt ich leider nichts anfangen 🙄

    Martin Richter schrieb:

    3. Damit bügelt Dein cast LPCTSTR die Compilerfehlermeldung weg.
    4. Die Du nicht bekommen würdest wenn Du die richtige Funktion für diesen Typ verwenden würdest: _wtoi

    Gut hab den cast gelöscht und die andere Funktion eingesetzt leider kommt jetzt eine Fehlermeldung:
    "error C2664: '_wtoi':konvertierung des Parameters 1 von 'CString' in 'const wchar_t *' nicht möglich.

    Martin Richter schrieb:

    BTW: Wird der BSTR auch freigegeben von Dir?

    Also
    BSTR test; anstatt
    UINT test; ??
    Oder was meinst du damit?
    Gruß Michael


Log in to reply