char in unsigned long konvertieren



  • Kann mir mal bitte einer sagen wie ich char in unsigned long konvertieren kann.



  • atoi()



  • stringstream, falls du char* meinst.
    ansonsten static_cast.

    [ Dieser Beitrag wurde am 02.09.2002 um 00:45 Uhr von PeterTheMaster editiert. ]



  • Wie geht stringstream?



  • Kann mir das einer mal genau zeigen



  • ichn habe mal:

    static_cast unsigned long prioreg;
    

    gemacht aber esagt:

    error C2062: 'unsigned long'-Typ unerwartet

    unsigned long = der Typ in der prioreg covertiert werden soll
    prioreg = ein char variable



  • so:

    HRESULT VarUI2FromI1( char  prioreg,ULONG *  prioregout);
    
           STARTUPINFO si = {sizeof(si)};
           PROCESS_INFORMATION pi;
    
           CreateProcess(NULL, zusammen, NULL, NULL, TRUE, &prioregout, NULL, NULL, &si, &pi);
    

    error C2065: 'prioregout' : nichtdeklarierter Bezeichner

    wenn ich das so mach:

    unsigned long prioregout;
           HRESULT VarUI2FromI1( char  prioreg,ULONG *  prioregout);
    
           STARTUPINFO si = {sizeof(si)};
           PROCESS_INFORMATION pi;
    
           CreateProcess(NULL, zusammen, NULL, NULL, TRUE, &prioregout, NULL, NULL, &si, &pi);
    

    error C2664: 'CreateProcessA' : Konvertierung des Parameters 6 von 'unsigned long *' in 'unsigned long' nicht moeglich
    Diese Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat



  • Kann mir den keiner hlefen



  • Ich denke, du solltest dir erstmal ein Tutorial über C/C++ anschauen. Deine Fragen sind blutige Anfänger-Fragen. Und was mich besonders ärgert: du hast meinen Ratschlag nicht beachtet. Ist das in diesem Forum hier normal? 😡 Na gut. Ich erkläre dir hier mal, wie man das machen kann. Ganz langsam.

    // stdlib einbinden für Verwendung von atoi()
    #include <stdlib.h>
    
    // Deine char-Variable prioreg
    char prioreg = '5';
    
    // Einen char-Array erstellen
    char PrioReg[2];
    // In das erste Byte den Wert von prioreg schreiben
    PrioReg[0] = prioreg;
    // In das zweite Byte eine 0 schreiben. Das bedeutet, dass die
    // Zeichenkette an dieser Stelle zu Ende ist
    PrioReg[1] = '\0';
    
    // Einen int erstellen, in den die Integer-Konvertierung von prioreg geschrieben wird
    // In unserem Beispiel ist iPrioReg = 5.
    int iPrioReg = atoi(PrioReg);
    
    // Einen ULONG erstellen. iPrioReg wird nach ULONG ge"castet" und in
    // ulPrioReg geschrieben.
    ULONG ulPrioReg = (ULONG)iPrioReg;
    

    So. Hoffe, das war verständlich.

    Ach ja: Im sechsten Parameter von CreateProcess() wird ein ULONG erwartet. Also schreibe da auch einen solchen rein. Und nicht die Adresse dessen!



  • Original erstellt von WebFritzi:
    Und was mich besonders ärgert: du hast meinen Ratschlag nicht beachtet.

    ey, alder! das sein nich ton von mir mit wohlwollen betrachtet sein.
    vermutlich konnte er gar nicht mangels erfahrung mit c++ und kapierens deines tips.
    aber abgesehen von dem roten köpfchen, thx für die weitere klarstellung. ehrlichgesagt hab ich mir die mühe nicht gemacht, weil der klient mit WINAPI rummacht, bevor er die grundlagen von c++ kann. mein verhalten da ist vermutlich böser, ohne daß ich as sage.



  • @Volkard
    Wenn du redest... redest du dann auch so? Wenn ich deine einstige Signatur zitieren darf...

    Dem krassen WM-Uhr

    😃



  • Original erstellt von WebFritzi:
    redest du dann auch so?

    je nach kontext und danach welcher volkard gerade an unserer oberfläche ist. wir sind nicht ein volkard. dachte, das sei längst klar. ein mensch allein kann niemals auch nur versuchen, c++ zu begreifen. wir mögen drogen nicht und haben deswegen den ausweg in die persönlichkeitsspaltung genommen.
    wir haben den vorteil, das sehr früh bewußt gemacht zu haben. im normalen gespräch kannst du mit uns wie mit einem reden. außer, du sprichst frauenparkplätze an, da hat ein volkard eine nicht mehr leicht relativierbare erfahrung, also einen volkard kannste an diesem thema ausmessen. abgesehen von dem sind wir echt stolz drauf, daß wir als einer gesehen werden und uns auch so jederzeit gegenseitig verteidigen können.



  • erinnert mich an gollum 🙂



  • Ich glaube, ich glaube Volkard (oder den Volkards? 😕 ). 😃



  • HKEY hKey2;
            RegCreateKeyEx(HKEY_CURRENT_USER,"Software\\MysticSoft\\CSS", 0, NULL, REG_OPTION_NON_VOLATILE,
            KEY_ALL_ACCESS | KEY_WRITE, NULL, &hKey2, NULL);
            char prioreg[200];
            unsigned long WertTyp2;
            unsigned long nMaxLenge2 = 200;
            RegQueryValueEx(hKey2, "prio", 0, &WertTyp2, (unsigned char*)prioreg, &nMaxLenge2);
            RegCloseKey(hKey2);
    
            char PrioReg[200];
            PrioReg[0] = prioreg;
            PrioReg[1] = '\0';
            int iPrioReg = atoi(PrioReg);
            ULONG ulPrioReg = (ULONG)iPrioReg;
    

    error C2440: '=' : 'char [200]' kann nicht in 'char' konvertiert werden
    Diese Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat



  • Vergiss es. OK? Vergiss es einfach. Lies dir ein Tutorial durch und melde dich dann wieder.



  • Danke für die Hilfe



  • oder:

    sprintf(intValue,"%d",charValue);

    das wars...



  • Original erstellt von <OS-Developer>:
    **oder:

    sprintf(intValue,"%d",charValue);

    das wars...**

    Öhhm... ja. Ich vergesse das immer wieder. 🙄



  • Als so :

    unsigned long intValue;
    sprintf(intValue,"%d",prioreg);

    geht das nich!Es kommt

    error C2664: 'sprintf' : Konvertierung des Parameters 1 von 'unsigned long' in 'char *' nicht moeglich
    Die Konvertierung eines ganzzahligen Typs in einen Zeigertyp erfordert ein reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat


Log in to reply