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 <
020
12.09.2002, 13:31 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


das hab ich ihm auch schon zu erklären versucht ;D
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
021
13.09.2002, 05:14 Uhr
~Dieter
Gast


Kann mir dan mal irgent wer zeigen wie das an meinem beispiel ausehen muss:


C++:
{    
        CRegKey key;
        key.Create(HKEY_CURRENT_USER,"Software\\MysticSoft\\CSS",REG_NONE,REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,NULL,NULL);
        key.SetValue(m_gamedir,"gamedir");
        key.Close();

        CRegKey key1;
        key1.Create(HKEY_CURRENT_USER,"Software\\MysticSoft\\CSS",REG_NONE,REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,NULL,NULL);
        key1.SetValue(m_para,"para");
        key1.Close();

        CString m_priostr;
        CString m_prioreg;
        m_prio.GetWindowText(m_priostr);

        if (m_priostr == "Echtzeit")
        {
        UpdateData(TRUE);
        m_prioreg = "REALTIME_PRIORITY_CLASS";
        UpdateData(FALSE);
        }

        if (m_priostr == "Hoch")
        {
        UpdateData(TRUE);
        m_prioreg = "HIGH_PRIORITY_CLASS";
        UpdateData(FALSE);
        }

        if (m_priostr =="Normal")
        {
        UpdateData(TRUE);
        m_prioreg = "NORMAL_PRIORITY_CLASS";
        UpdateData(FALSE);
        }

        if (m_priostr == "Niedrig")
        {
        UpdateData(TRUE);
        m_prioreg = "IDLE_PRIORITY_CLASS";
        UpdateData(FALSE);
        }

        CRegKey key2;
        key2.Create(HKEY_CURRENT_USER,"Software\\MysticSoft\\CSS",REG_NONE,REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,NULL,NULL);
        key2.SetValue(m_prioreg,"prio");
        key2.Close();

        CRegKey key3;
        key3.Create(HKEY_CURRENT_USER,"Software\\MysticSoft\\CSS",REG_NONE,REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,NULL,NULL);
        key3.SetValue("1","start");
        key3.Close();

        HKEY hKey;
        RegCreateKeyEx(HKEY_CURRENT_USER,"Software\\MysticSoft\\CSS", 0, NULL, REG_OPTION_NON_VOLATILE,
        KEY_ALL_ACCESS | KEY_WRITE, NULL, &hKey, NULL);
        char gamedir[200];
        unsigned long WertTyp;
        unsigned long nMaxLenge = 200;
        RegQueryValueEx(hKey, "gamedir", 0, &WertTyp, (unsigned char*)gamedir, &nMaxLenge);
        RegCloseKey(hKey);

        HKEY hKey1;
        RegCreateKeyEx(HKEY_CURRENT_USER,"Software\\MysticSoft\\CSS",0,NULL,REG_OPTION_NON_VOLATILE,
        KEY_ALL_ACCESS | KEY_WRITE,NULL,&hKey1,NULL);
        char parameter[200];
        unsigned long WertTyp1;
        unsigned long nMaxLenge1 = 200;
        RegQueryValueEx(hKey1, "para", 0, &WertTyp1, (unsigned char*)parameter, &nMaxLenge1);
        RegCloseKey(hKey1);

        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 = 0;

        if(strcmp(prioreg,"IDLE_PRIORITY_CLASS")==0)
        progin = IDLE_PRIORITY_CLASS;

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

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

    if (CanExit())
    CDialog::OnOK();


// REALTIME_PRIORITY_CLASS - Echtzeit
// HIGH_PRIORITY_CLASS - Hoch
// NORMAL_PRIORITY_CLASS - Normal
// IDLE_PRIORITY_CLASS - Niedrig
}
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
022
13.09.2002, 20:05 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


ok


C++:
{    
    // nimm halt die jeweiligen Member, dann hat man keine cast-Probleme
    CRegKey Writekey;
    Writekey.Create(HKEY_CURRENT_USER,"Software\\MysticSoft\\CSS",
                    REG_NONE, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS,
                    NULL, NULL);
    [b]Writekey.SetStringValue("gamedir",m_gamedir);[/b]
    Writekey.Close();

    Writekey.Create(HKEY_CURRENT_USER,"Software\\MysticSoft\\CSS",
                           REG_NONE, REG_OPTION_NON_VOLATILE,
                           KEY_ALL_ACCESS, NULL, NULL);
    Writekey.SetStringValue("para",m_para);
    Writekey.Close();

    CString strPrio; // [b]m_???-Vars möglichst nur für Membervariablen[/b]
                         // [b]verwenden, man kommt sonst leicht durcheinander![/b]
    DWORD dwPrio;

    // Du arbeitest mit GetWindowText, sehr gut :D
    m_prio.GetWindowText(m_strPrio);
  
    if (strPrio == "Echtzeit")
    {
        // für was UpdateData aufrufe??? bringen da gar nix!
        [b]dwPrio = REALTIME_PRIORITY_CLASS;[/b]
    }

    if (strPrio == "Hoch")
    {
        dwPrio = HIGH_PRIORITY_CLASS;
    }

    if (strPrio =="Normal")
    {
        dwPrio = NORMAL_PRIORITY_CLASS;
    }

    if (strPrio == "Niedrig")
    {
        dwPrio = IDLE_PRIORITY_CLASS;
    }

     WriteKey.Create(HKEY_CURRENT_USER,"Software\\MysticSoft\\CSS",
                            REG_NONE, REG_OPTION_NON_VOLATILE,
                            KEY_ALL_ACCESS, NULL, NULL);
    // Benutze SetDWORDValue!
    WriteKey.SetDWORDValue("prio",dwPrio);
    WriteKey.Close();

     WriteKey.Create(HKEY_CURRENT_USER,"Software\\MysticSoft\\CSS",
                            REG_NONE, REG_OPTION_NON_VOLATILE,
                            KEY_ALL_ACCESS, NULL, NULL);
     WriteKey.SetStringValue("start","1");
     WriteKey.Close();

     // Warum benutzt du zum Auslesen nicht auch CRegKey???
     [b]CRegKey ReadKey;[/b]
     ReadKey.Open(HKEY_CURRENT_USER,"Software\\MysticSoft\\CSS",
                         KEY_ALL_ACCESS | KEY_WRITE);
     char cGamedir[1025];
     ULONG uoGDirStrLength = 0L;
     ReadKey.QueryStringValue("gamedir",cGamedir,&uoGDirStrLength );
     ReadKey.Close();

     ReadKey.Open(HKEY_CURRENT_USER,"Software\\MysticSoft\\CSS",
                         KEY_ALL_ACCESS | KEY_WRITE);
     char cParameter[1025];
     ULONG uoParaStrLength = 0L;
     ReadKey.QueryStringValue("para",cParameter,&uoParaStrLength );
     ReadKey.Close();

     CRegKey ReadKey;
     ReadKey.Open(HKEY_CURRENT_USER,"Software\\MysticSoft\\CSS",
                         KEY_ALL_ACCESS | KEY_WRITE);
     DWORD dwPrio = 0x00000000;
     ReadKey.QueryDWORDValue("prio",dwPrio);
     ReadKey.Close();

    // Warum hier so umständlich? Was du in 5Zeilen hast ist hier in 1er!
    CString strExec;
    [b]strExec.Format("%s %s",cGamedir, cParameter);[/b]

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

    if (CanExit())
        CDialog::OnOK();
}



Habs nicht getestet, sollte aber gehen! (Warum so viele überflüssige Variablen?)
--
class God : public ChuckNorris { };

Dieser Post wurde am 13.09.2002 um 20:09 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
023
17.09.2002, 18:42 Uhr
~Dieter
Gast


so konnte ich ihn auf 2 fehler min aber die 2 bekomme ich nich weg.
C++:
{
    CRegKey Writekey;
    Writekey.Create(HKEY_CURRENT_USER,"Software\\MysticSoft\\CSS",REG_NONE, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS,NULL, NULL);
    Writekey.SetValue("gamedir",m_gamedir);
    Writekey.Close();

    Writekey.Create(HKEY_CURRENT_USER,"Software\\MysticSoft\\CSS",REG_NONE, REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS, NULL, NULL);
    Writekey.SetValue("para",m_para);
    Writekey.Close();

    CString strPrio;
    DWORD dwPrio;
    m_prio.GetWindowText(strPrio);

    if (strPrio == "Echtzeit")
    {
    dwPrio = REALTIME_PRIORITY_CLASS;
    }

    if (strPrio == "Hoch")
    {
    dwPrio = HIGH_PRIORITY_CLASS;
    }

    if (strPrio =="Normal")
    {
    dwPrio = NORMAL_PRIORITY_CLASS;
    }

    if (strPrio == "Niedrig")
    {
    dwPrio = IDLE_PRIORITY_CLASS;
    }

     Writekey.Create(HKEY_CURRENT_USER,"Software\\MysticSoft\\CSS",REG_NONE, REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS, NULL, NULL);
     Writekey.SetValue("prio",dwPrio); // Zeile 316
     Writekey.Close();

     Writekey.Create(HKEY_CURRENT_USER,"Software\\MysticSoft\\CSS",REG_NONE, REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS, NULL, NULL);
     Writekey.SetValue("start","1");
     Writekey.Close();

     CRegKey ReadKey;
     ReadKey.Open(HKEY_CURRENT_USER,"Software\\MysticSoft\\CSS",KEY_ALL_ACCESS | KEY_WRITE);
     char cGamedir[1025];
     ULONG uoGDirStrLength = 0L;
     ReadKey.QueryValue("gamedir",cGamedir,&uoGDirStrLength );
     ReadKey.Close();

     ReadKey.Open(HKEY_CURRENT_USER,"Software\\MysticSoft\\CSS",KEY_ALL_ACCESS | KEY_WRITE);
     char cParameter[1025];
     ULONG uoParaStrLength = 0L;
     ReadKey.QueryValue("para",cParameter,&uoParaStrLength );
     ReadKey.Close();

     ReadKey.Open(HKEY_CURRENT_USER,"Software\\MysticSoft\\CSS",KEY_ALL_ACCESS | KEY_WRITE);
     ReadKey.QueryValue("prio",dwPrio); // 337
     ReadKey.Close();

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


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

     if (CanExit())
        CDialog::OnOK();
}
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
024
17.09.2002, 18:43 Uhr
~Dieter
Gast


CS StarterDlg.cpp(316) : error C2664: 'long __thiscall ATL::CRegKey::SetValue(unsigned long,const char *)' : Konvertierung des Parameters 1 von 'char [5]' in 'unsigned lo
ng' nicht moeglich
Diese Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat
CS StarterDlg.cpp(337) : error C2664: 'long __thiscall ATL::CRegKey::QueryValue(unsigned long &,const char *)' : Konvertierung des Parameters 1 von 'char [5]' in 'unsigne
d long &' nicht moeglich
Ein Verweis, der nicht auf ein 'const' zeigt, kann nicht an einen Wert gebunden werden, bei dem es sich nicht um einen L-Wert handelt
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
025
19.09.2002, 11:47 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


oh mist, entschuldige,


C++:
//...
Writekey.SetValue(dwPrio,"prio"); // Zeile 316
//...
ReadKey.QueryValue(dwPrio,"prio"); // 337
//...



Warum benutzt du nicht SetDWORDValue und QueryDWORDValue? Die hab ich bei meiner Verbesserung benutzt! (Da stimmt die Anordnung der Parameter dann)
--
class God : public ChuckNorris { };

Dieser Post wurde am 19.09.2002 um 11:48 Uhr von FloSoft editiert.
 
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: