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