CryptStringToBinary schlägt fehl



  • Scheinbar habe ich ein Brett vor dem Kopf oder so ähnlich. Ich versteh einfach nicht wieso folgender Code mit false beendet wird:

    DWORD SIZE = 0;
    LPCTSTR Wert = BufferDaten->Mail_Account.c_str();
    bool Status  = CryptStringToBinary(Wert, 0, CRYPT_STRING_BASE64, NULL, &SIZE, NULL, NULL);
    

    BufferDaten->Mail_Account.c_str() ist übrigens vom Type std:string.
    Er kompiliert auch ohne zu meckern. Doch bei der Ausführung bekomme ich weder true zurück noch die Länge der Zeichenkette.

    Hier mal der Link zur MSDN:
    http://msdn.microsoft.com/en-us/library/aa380285(VS.85).aspx



  • Hallo,

    der Rückgabewert von c_str ist nur während der Anweisung gültig. Beim Aufruf von CryptString kann er schon wieder ungültig sein. Probier mal das da:

    bool Status  = CryptStringToBinary(
       (LPCTSTR)BufferDaten->Mail_Account.c_str(), 0, 
       CRYPT_STRING_BASE64, NULL, &SIZE, NULL, NULL
    );
    

    mfg Martin



  • Das habe ich bereits probiert:-)
    Führte aber zu dem selben Ergebnis:-(


Log in to reply