Void pointer casten bzw. einen Wert zuweisen



  • Ich habe eine gegebene Funktion

    initCam (HIDS* phf);
    

    HIDS ist ein typedef auf HANDLE und HANDLE ein typedef auf void pointer (sic).

    Wenn ich das Ding jetzt mit 0 aufrufen will mach ich also

    HIDS CamHandle = 0;
    initCam (&CamHandle);
    

    Ich brauche aber nicht 0 sondern 1 oder 2. Also mach ich folgendes

    int nCamdID = 1;
    HIDS CamHandle = &nCamID;
    

    Damit ich an den Wert von nCamID komm muss ich casten also zum Bleistift

    cout << *(int*)CamHandle; // gibt 1 aus
    

    Versuche ich das ganze bei initCam ala

    initCam (*(int*)CamHandle);
    

    motzt er natürlich das er nicht von int nach void ** konvertieren kann. Also wie muss ich da jetzt casten damit initCam den Wert von nCamID übergeben bekommt?



  • Ich brauche aber nicht 0 sondern 1 oder 2. Also mach ich folgendes

    Warum ? Kannst du mir das erklären. 😕



  • Redhead schrieb:

    Ich brauche aber nicht 0 sondern 1 oder 2. Also mach ich folgendes

    Warum ? Kannst du mir das erklären. 😕

    Gerne.

    phf
    Zeiger auf Handle der Kamera.
    Der Inhalt des Zeigers hat beim Aufruf der Funktion folgende Bedeutung:
    0: verwende erste freie Kamera
    1-254: verwende Kamera mit dieser ID



  • HIDS CamHandle = reinterpret_cast<HIDS>(1); 
    initCam (&CamHandle);
    

    ungetestet

    So sollte es funktionieren.



  • Hm jo funktioniert. Muss ich mir halt nachher die Hände waschen 😉


Anmelden zum Antworten