Compilerprob beim Visual Studio

Gast #250726
Lesenswert?

Hi Leuts,

wenn ich eine globale Funktion schreibe in der ich folgenden Aufruf
mache:
  CListBox *p;
  p = (CListBox*) GetDlgItem(n);
krieg ich folgenden Fehler:

Global.cpp(45) : error C2660: 'GetDlgItem' : Funktion akzeptiert
keine 1 Parameter


Das kann aber doch irgendwie gar nicht sein, denn es gibt zwei
Versionen von GetDlgItem, wobei die eine laut MSDN nur den Integerwert
des Items benötigt.
Wenn ich den Funktzionsaufruf in einer Dialogklasse mache, dann klappt
das. Ich will die Funktion aber öfters nutzen, rufe sie also von
verschiedenen Dialogklassen auf und übergeben dabei jeweils den Wert
des Controls. Wieso meckert der Compiler ?


Greets
Karlheinz
#250727
Lesenswert?

Ich kenne nur die eine Variante, die offenbar zwei Parameter verlangt:
http://msdn.microsoft.com/library/en-us/winui/winui/windowsuserinterface/windowing/dialogboxes/dialogboxreference/dialogboxfunctions/getdlgitem.asp

Dass dein Funktionsaufruf innerhalb der Dialogklasse funktioniert,
deutet stark darauf hin, dass "dein" GetDlgItem eben keine globale
Funktion ist. Das heißt, ohne ein Objekt der Dialogklasse macht
GetDlgItem wenig Sinn, daher beschwert sich der Compiler.

btw, wieso benutzt du C-Casts, wo du doch C++ programmierst?
Zum einen sind Casts in C++ nur in Ausnahmefällen nötig, zum anderen
benutzt man wenn dann reinterpret_cast<>:
CListBox* p =
reinterpret_cast<CListBox*>(DialogKlassenInstanz->GetDlgItem(n));

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren