CString to GUID



  • CString to GUID
    ich möchte einen in eine GUID umwandeln also in etwa sowas

    {c200e360-38c5–11ce-ae62-08002b2b79ef}
    

    für das umgekehrte hab ich

    StringFromGUID2()
    

    gefunden. doch wie erstelle ich die GUID



  • Mit char* geht's so:

    char *tmpguid;	
    UUID uuid;
    UuidCreate(&uuid);
    UuidToString(&uuid,(unsigned char**)&tmpguid);
    


  • erstmal danke,
    allerdings brauche ich die

    UuidFromString(
      unsigned char *StringUuid,
      UUID *Uuid
    );
    

    funktion.
    Und das haut leider überhaupt nicht hin 😞

    Wie bekomme ich denn mein CString in das

    unsigned char *
    

    damit ich das anwenden kann?



  • vielleicht nochmal anders,

    ich muss das deswegen konvertieren, weil ich aus einer EDIT box einen CString zurückbekomme. damit ich das UuidFromString() verwenden kann muss ich diesen CString in ein unsigned char* konvertieren.

    dazu hab ich auch schon verschiedenes im Netz gefunden, nur funktioniert keine variante davon 😞

    unsigned char* msg=reinterpret_cast<unsigned char *>(const_cast<char *>(EditBoxBuffer));
    unsigned char* msg=reinterpret_cast<unsigned char *>(const_cast<char *>((LPCTSTR)EditBoxBuffer));
    unsigned char *msg = (unsigned char *) (LPCSTR) EditBoxBuffer;
    

    das einzige, das funktioniert ist:

    test = (unsigned char *) EditBoxBuffer.GetBuffer(0);
    

    allerdings funktioniert dann das

    UuidFromString(test, &myGuid);
    

    nicht.

    error C2664: 'UuidFromStringW' : cannot convert parameter 1 from 'unsigned char *' to 'unsigned short *'
    


  • versuchs mal hiermit. Habe damit gute Erfahrungen gemacht.

    unsigned char* msg=reinterpret_cast<unsigned char *>(const_cast<char >(EditGUIDBuffer));
    unsigned char
    msg=reinterpret_cast<unsigned char *>(const_cast<char *>((LPCTSTR)EditGUIDBuffer));
    unsigned char *msg = (unsigned char 😉 (LPCSTR) EditGUIDBuffer;

    Das GUID-Objekt wird gerne mal vergessen, deshalb hier der Verweis drauf.
    No Prob und nix zu danken 👍



  • hab nun folgendes gemacht:

    CString EditBoxBuffer;
    GetDlgItemText(IDC_BLA, EditBoxBuffer);
    
    LPOLESTR lpolestrBuffer;
    lpolestrBuffer = EditBoxBuffer.AllocSysString();
    
    CLSIDFromString(lpolestrBuffer, &myGuid);
    SysFreeString(lpolestrBuffer);
    

    das tut es. und damit kann ich wohl sogar meine klammern behalten.


Anmelden zum Antworten