Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Char in unsigniert Long

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ] [ 3 ]
000
07.09.2002, 19:43 Uhr
~Dieter
Gast


Kann mir einer sagen wie ich eine variable regin(char) in die variable progin (unsigniert Long) konvertiere.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
07.09.2002, 19:59 Uhr
mike
Pinguinhüpfer
(Operator)


Hi!
Bin mir nicht sicher: Probiers mal zu casten: (unsigned long)regin

mfg mike
--
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
08.09.2002, 13:15 Uhr
~Dieter
Gast


und wie genau geht das?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
08.09.2002, 13:21 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


ungefähr so:


C++:
char regin = (char)32;
unsigned long progin = 0;

progin = (unsigned long)regin;
if(progin != 32)
  printf("error, something wrong with your compiler or what? ;D");
else
  printf("progin = %l",regin);



das oben sollte nun eigentlich


Zitat:

progin = 32



ausgeben, wenn nicht, tja, er schreibts dir dann scho hin ;)
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
08.09.2002, 13:52 Uhr
~Dieter
Gast



C++:
        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);

        unsigned long progin = 200;
        progin = (unsigned long)prioreg;


        STARTUPINFO si = {sizeof(si)};
        PROCESS_INFORMATION pi;
        CreateProcess(NULL, zusammen, NULL, NULL, TRUE, progin, NULL, NULL, &si, &pi);


So versuche ich aus der Reg werte aus zulesen (REALTIME_PRIORITY_CLASS,HIGH_PRIORITY_CLASS,NORMAL_PRIORITY_CLASS,IDLE_PRIORITY_CLASS).So dieser wirt ausgelesen als char.Dann soll dieser char in unsigned long convertiert werden und so in CreateProcess eingesetzt werden.Aber irgent wie funktiniert das nich?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
08.09.2002, 13:56 Uhr
~Dieter
Gast



C++:
        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);

        CString a = parameter;
        char* b= gamedir;
        char zusammen[1000];
        strcpy (zusammen, b);
        strcat(zusammen, " ");
        strcat(zusammen, a);


        unsigned long progin = 200;
        progin = (unsigned long)prioreg;
        if(progin != 200)
        printf("error, something wrong with your compiler or what? ;D");
        else
        printf("progin = %l",prioreg);


        STARTUPINFO si = {sizeof(si)};
        PROCESS_INFORMATION pi;
        CreateProcess(NULL, zusammen, NULL, NULL, TRUE, progin, NULL, NULL, &si, &pi);


so gehtz auch nich?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
08.09.2002, 15:22 Uhr
mike
Pinguinhüpfer
(Operator)


Hi!
Bin mir nicht ganz sicher: Aber ob das casten noch zu 100% funzt, wenn du ein prioreg[200] char Array deklarierst, ist fraglich. Glaub nämlich, dass du ihm aufzwingst, einen 1600bit auf 4bit zu casten. Und dafür gibts dann glaub ich static_cast. Aber wie gesagt: Ich bin mir nicht sicher ;D

mfg mike
--
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
08.09.2002, 16:01 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


naja ich würde einfach folgendes machen:


C++:
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 = 0;
unsigned long nMaxLenge2 = 200;

RegQueryValueEx(hKey2,
               "prio",
               0,
               &WertTyp2,
               (unsigned char*)prioreg,
               &nMaxLenge2);

RegCloseKey(hKey2);

CString a = parameter;
CString b = gamedir;
CString zusammen = b + " " + a;

unsigned long progin = (unsigned)atol(prioreg); // long atol(const char *string); Konvertiert char into long

STARTUPINFO si = {sizeof(si)};
PROCESS_INFORMATION pi;

CreateProcess(NULL,
               zusammen,
               NULL,
               NULL,
               TRUE,
               progin,
               NULL,
               NULL,
               &si,
               &pi);



So sollte es gehen
--
class God : public ChuckNorris { };

Dieser Post wurde am 08.09.2002 um 16:02 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
08.09.2002, 22:40 Uhr
~Dieter
Gast



C++:
        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 = 0;
        unsigned long nMaxLenge2 = 200;
        RegQueryValueEx(hKey2, "prio",0,&WertTyp2,(unsigned char*)prioreg,&nMaxLenge2);
        RegCloseKey(hKey2);

        CString a = parameter;
        char* b= gamedir;
        char zusammen[1000];
        strcpy (zusammen, b);
        strcat(zusammen, " ");
        strcat(zusammen, a);

        unsigned long progin = (unsigned)atol(prioreg); // long atol(const char *string); Konvertiert char into long

        STARTUPINFO si = {sizeof(si)};
        PROCESS_INFORMATION pi;
        CreateProcess(NULL,zusammen,NULL,NULL,TRUE,progin,NULL,NULL,&si,&pi);


So wirt das programm sehr gut gestartet aber leider immer nur mit der Prirität Normal wo bei aber immer andre werte ausgelesen werden.Egal welcher dieser Werte:

// REALTIME_PRIORITY_CLASS - Echtzeit
// HIGH_PRIORITY_CLASS - Hoch
// NORMAL_PRIORITY_CLASS - Normal
// IDLE_PRIORITY_CLASS - Niedrig

Ausgelesen wirt das Programm startet sich immer in der Priorität Normal.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
08.09.2002, 23:30 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


Mach mal folgendes nach dieser Zeile rein:


C++:
// ...
unsigned long progin = (unsigned)atol(prioreg); // long atol(const char *string); Konvertiert char into long

CString test;
test.Format("%d - %s",progin,pioreg);
AfxMessageBox(test);

       STARTUPINFO si = {sizeof(si)};
//...



Die beiden Zahlen müssten dann gleich sein, wenn nicht stimmt was nicht ganz ...
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ] [ 3 ]     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: