Skrypt do edytowania rejestru - błąd konwersji

0

Witam.
Znalazłem na tym forum skrypt do edytowania rejestru... jedna z jego funkcji generuje mi błąd jak w temacie (w wierszu == ERROR_SUCCESS ) ):

invalid conversion from 'char*' to 'const BYTE* {aka const unsigned char*}' [-fpermissive]|

Spotkał się ktoś może z czymś podobnym?

void rejestr::dodaj_wartosc(HKEY        uchwyt_klucza_nadrzednego,
                            LPCTSTR               nazwa_podklucza,
                            LPCTSTR                nazwa_wartosci,
                            char                     * wartosc_SZ)
{
  HKEY    uchwyt_podklucza;

  if(RegOpenKeyEx(uchwyt_klucza_nadrzednego,
                            nazwa_podklucza,
                  0,                                //wartość zarezerwowana
                                                    //musi być 0
                  KEY_SET_VALUE,                    //prawa dostępu do klucza
                  &uchwyt_podklucza)==ERROR_SUCCESS)   //tu zostanie zapisany
    {                                                   //uchwyt_podklucza
      if(  RegSetValueEx(uchwyt_podklucza      ,
                         nazwa_wartosci        ,
                         0                     ,        //zarezerwowane musi być 0
                         REG_SZ                ,        //typ wartosci
                         wartosc_SZ            ,        //wartośc typu REG_SZ
                         strlen(wartosc_SZ)+1           //ten +1 na znak'\0'
                         ) == ERROR_SUCCESS    )
           cout << "Wartosc zostala utworzona";
      else
        {
          cout << "Operacja nieudana, albo klucz nie istnieje,\n\n" ;
          cout << "albo nie masz odpowiednich praw aby w nim utworzyc wartosc";
        }
      RegCloseKey(uchwyt_podklucza);
    }
  else
    {
      cout << "Operacja nieudana, albo klucz nie istnieje,\n\n" ;
      cout << "albo nie masz odpowiednich praw aby w nim utworzyc wartosc";
    }
  cin.get();
}

//Win7 64\ codeblocks
1

I co w tym komunikacie jest dla Ciebie niejasnego?
Któraś z funkcji oczekuje unsigned char*, podczas gdy Ty przekazujesz char*.

0
Patryk27 napisał(a):

I co w tym komunikacie jest dla Ciebie niejasnego?
Któraś z funkcji oczekuje unsigned char*, podczas gdy Ty przekazujesz char*.

Przechodzę bezpośrednio z VBA do C++, i trochę nie ogarniam składni, te języki są ... różne, gubię się. A potrzebuje c++ tylko do instalacji skryptów napisanych w VBA, dlatego
biorąc moje wcześniejsze doświadczenia sprawdziłem tak...

mam deklaracje

   void dodaj_wartosc(HKEY        uchwyt_klucza_nadrzednego,
                      LPCTSTR               nazwa_podklucza,
                      LPCTSTR                nazwa_wartosci,
                      char                     * wartosc_SZ);

mam funkcje

//------------------------------------------------------------------------------
void rejestr::dodaj_wartosc(HKEY        uchwyt_klucza_nadrzednego,
                            LPCTSTR               nazwa_podklucza,
                            LPCTSTR                nazwa_wartosci,
                            char                     * wartosc_SZ)
{
  HKEY    uchwyt_podklucza;
 
  if(RegOpenKeyEx(uchwyt_klucza_nadrzednego,
                            nazwa_podklucza,
                  0,                                //wartość zarezerwowana
                                                    //musi być 0
                  KEY_SET_VALUE,                    //prawa dostępu do klucza
                  &uchwyt_podklucza)==ERROR_SUCCESS)   //tu zostanie zapisany
    {                                                   //uchwyt_podklucza
      if(  RegSetValueEx(uchwyt_podklucza      ,
                         nazwa_wartosci        ,
                         0                     ,        //zarezerwowane musi być 0
                         REG_SZ                ,        //typ wartosci
                         wartosc_SZ            ,        //wartośc typu REG_SZ
                         strlen(wartosc_SZ)+1           //ten +1 na znak'\0'
                          )== ERROR_SUCCESS    )
           cout << "Wartosc zostala utworzona";
      else
        {
          cout << "Operacja nieudana, albo klucz nie istnieje,\n\n" ;
          cout << "albo nie masz odpowiednich praw aby w nim utworzyc wartosc";
        }
      RegCloseKey(uchwyt_podklucza);
    }
  else
    {
      cout << "Operacja nieudana, albo klucz nie istnieje,\n\n" ;
      cout << "albo nie masz odpowiednich praw aby w nim utworzyc wartosc";
    }
  cin.get();
}
//------------------------------------------------------------------------------

no i mam char* w deklaracji i char* w funkcji...
Błąd się pojawia bez wywoływania funkcji w trakcie kompilacji... (czyli nie przekazuje jeszcze żadnych zmiennych)
Zdaje sobie sprawę że pewnie mam to jak na dłoni ...ale tak jak pisałem to moja pierwsza styczność z C++.

całość pobrałem z tego wątku
[]https://4programmers.net/C/Artyku%C5%82y/Programowanie_rejestru.(http://)
pozdrawiam i liczę na wyrozumiałość : )

1 użytkowników online, w tym zalogowanych: 0, gości: 1