Reklama
Pokazuje wyniki od 1 do 3 z 3

Temat: C++ Pomoc ze wskaznikami.

  1. #1
    Avatar Rollercoster
    Data rejestracji
    2011
    Wiek
    29
    Posty
    1,247
    Siła reputacji
    14

    Domyślny C++ Pomoc ze wskaznikami.

    Witam, analizowałem sobie pewnien kod:
    Kod:
    bool zainstaluj( char * miejsce )
    {
        /* DODAWANIE DO REJESTRU */
        HKEY klucz;
        LONG Wynik;
        DWORD Nowy;
        const BYTE * lpData =( const BYTE * ) "C:\\WINDOWS\\twojprogram.exe";
        Wynik = RegCreateKeyEx( HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Run", 0, 0, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, 0, & klucz, & Nowy );
        if( Wynik == ERROR_SUCCESS )
        {
            RegSetValueEx( klucz, "NazwaTwojegoProgramu", 0, REG_SZ, lpData, 256 );
            RegCloseKey( klucz );
        }
        else
        {
            return false;
        }
        return true;
    }
    Jednak kompletnie nie rozumiem co robi ta linijka:
    const BYTE * lpData =( const BYTE * ) "C:\\WINDOWS\\twojprogram.exe";
    oraz ten argument:
    char * miejsce
    Chcialbym przekazac argumenty, zeby zamiast C:\\WINDOWS\\twojprogram.exe było po prostu xxx.
    Testowo zrobiłem tak:
    int name=1;
    HKEY klucz;
    LONG Wynik;
    DWORD Nowy;
    const BYTE * lpData =( const BYTE * ) name;
    ale program po prostu sie crashuje.
    Poaczatki z c++, nie bijcie.

  2. #2
    Avatar Gray
    Data rejestracji
    2007
    Położenie
    Gdańsk
    Posty
    2,847
    Siła reputacji
    18

    Domyślny

    Nie znam tych funkcji, więc nie gwarantuję że zadziała, ale:

    Jednak kompletnie nie rozumiem co robi ta linijka:
    const BYTE * lpData =( const BYTE * ) "C:\\WINDOWS\\twojprogram.exe";
    Konwertuje tablicę znaków (char*) na tablicę bajtów. Fizycznie nic się tam nie zmienia, ale kompilator będzie po prostu ten kawałek pamieci traktował jako inny typ (bo taki jest potrzebny do wywołania funkcji).

    oraz ten argument:
    char * miejsce
    W tym kodzie nie jest używany w ogóle, więc mogłoby go nie być.
    Ale domyślam się że to miała być właśnie ta ścieżka, więc spróbuj wpisać miejsce zamiast C:\\WINDOWS\\twojprogram.exe, a jako parametr do funkcji podać to co chcesz. I parametr najlepiej zmień na const char* miejsce.

  3. Reklama
  4. #3
    Avatar Rollercoster
    Data rejestracji
    2011
    Wiek
    29
    Posty
    1,247
    Siła reputacji
    14

    Domyślny

    Cytuj Gray napisał Pokaż post
    Cytat został ukryty, ponieważ ignorujesz tego użytkownika. Pokaż cytat.
    Ale domyślam się że to miałą być właśnie ta ścieżka, więc spróbuj wpisać miejsce zamiast C:\\WINDOWS\\twojprogram.exe, a jako parametr do funkcji podać to co chcesz.
    Działa :O

    Dziekuje bardzo, ciężkie są te wskaźniki :)

Reklama

Informacje o temacie

Użytkownicy przeglądający temat

Aktualnie 1 użytkowników przegląda ten temat. (0 użytkowników i 1 gości)

Podobne tematy

  1. Odpowiedzi: 7
    Ostatni post: 11-12-2013, 22:16
  2. Odpowiedzi: 7
    Ostatni post: 26-02-2012, 23:05

Zakładki

Zakładki

Zasady postowania

  • Nie możesz pisać nowych tematów
  • Nie możesz pisać postów
  • Nie możesz używać załączników
  • Nie możesz edytować swoich postów
  •