Ein 'const BYTE' mit Werten aus einem CString füllen?



  • Hallo Community,
    wie kann ich in C++ ein 'const BYTE' mit Werten aus einem CString füllen?
    Der CString ist ein Wert der aus einem Dialog kommt, und stellt einen Usernamen dar, damit ich ihn in der Funktion :

    Base64Encode(srcUser,iSrcLen,szDest,&szDes tLen,dwFlags);

    verwenden kann, muß ich ihn convertieren, jetzt ist da ein fester Wert drin, aber das ist nur vorübergehend, const BYTE userName[] = "Ich";

    srcUser muß ein const BYTE sein...

    Der CString muß in das const BYTE userName rein, nur wie??

    danke
    mirsad



  • Mit CString::GetAt solltest du an die einzelnen Buchstaben rankommen.
    Du musst dann nur ausreichenden Speicherplatz zur Verfügung stellen und auf die abschließende NULL achten. 🙂



  • estartu_de schrieb:

    Mit CString::GetAt solltest du an die einzelnen Buchstaben rankommen.
    Du musst dann nur ausreichenden Speicherplatz zur Verfügung stellen und auf die abschließende NULL achten. 🙂

    und das 'const' muss wech



  • Mirsad schrieb:

    Der CString muß in das const BYTE userName rein, nur wie??

    Base64Encode((const BYTE*)(LPCTSTR)srcUser...

    Const Killer schrieb:

    und das 'const' muss wech

    Unsinn.



  • Hi,
    also danke an alle die sich beteiligt haben 😉 👍
    das von MFK war das was funktioniert hat

    MFK schrieb:

    Base64Encode((const BYTE*)(LPCTSTR)srcUser...

    mfg
    Mirsad



  • kleiner Tipp: das geht ohne Warnung schief, wenn die Anwendung als Unicode compiliert wird. (Dann ist LP(C)TSTR ein UNICODE-String). Bau wenigstens ein

    #ifdef _UNICODE
    #error geht nicht
    #endif
    

    ein



  • Hi,
    hmm, 😕 ,ok 🙂 danke
    mfg
    mirsad



  • peterchen schrieb:

    kleiner Tipp: das geht ohne Warnung schief, wenn die Anwendung als Unicode compiliert wird. (Dann ist LP(C)TSTR ein UNICODE-String).

    Warum sollte das schiefgehen? Lässt sich der Datenstrom, der einen Unicode-String repräsentiert, nicht Base64-encoden?

    Dass man dann bei den Längenangaben aufpassen muss, ist natürlich eine andere Sache 😉



  • Prinzipiell schon - du bräuchstest bei size nur ein len*sizeof(TCHAR) - aber wenn die andere Seite keinen Unicode-String erwartet, bist du aufgeschmissen.


Anmelden zum Antworten