Eigene Fensterklasse mit Fensterprozedur und Buttons => Nichtaufgelöstes externes Symbol
-
Hallo!
Ich habe eine Klasse CControlWindow. Diese hat eine statische WindowProzedurFunktion. Ich erstelle das Window. Funktioniert alles super :). Jetzt will ich aber Buttons in dem Fenster. Also erstelle ich zwei static Buttons hbSingleSelect hbObjectSelect. Diese erstelle ich in InitWindow. In der Fensterprozedur überprüfe ich unter WM_COMMAND, ob die Buttons gedrückt wurden. Das Compilerresultat:ControlWindow.obj : error LNK2001: Nichtaufgeloestes externes Symbol "public: static struct HWND__ * CControlWindow::hbObjectSelect" (?hbObjectSelect@CControlWindow@@2PAUHWND__@@A) ControlWindow.obj : error LNK2001: Nichtaufgeloestes externes Symbol "public: static struct HWND__ * CControlWindow::hbSingleSelect" (?hbSingleSelect@CControlWindow@@2PAUHWND__@@A)Wisst ihr, was ich falsche mache?
Danke,
Gruß,
Kevin/EDIT hbSingle/ObjectSelect sind beides Members von CControlWindow. Sobald sie im Source verwendet werden, gibt es diesen liebevollen Fehler!
-
Dann informier dich wie man static-Members richtig benutzt!
Hat doch überhaupt nichts mit WinAPI zu tun.
-
jo, das Thema hatten wir schon ein paar mal in den letzten Wochen. Da deine WindowProzedur static ist, hat sie keinen Zugriff auf Nichtstatische Membervariablen der Klasse. Schau mal hier
http://www.c-plusplus.net/forum/viewtopic.php?t=39356
-
Deadlef, das hat mit Surkevin's Problem nichts zu tun.
-
http://fara.cs.uni-potsdam.de/~kaufmann/?page=GenCppFaqs&faq=static#Answ
static in Verbindung mit Klassen erzeugt sogenannte Klassenvariablen/-methoden. Solche können, unabhängig von einem Objekt, über den Namen der Klasse angesprochen werden. Klassenvariablen existieren nur einmal pro Klasse. Sie werden innerhalb der Klassendefinition deklariert und müssen außerhalb dieser definiert werden (normalerweise in der cpp-Datei).
-
und wie definiert man diese Variable?
-
Du könntest dich ja mal selbst auf die Suche begeben.
Aber nein, bei allem muss man dir helfen.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccelng/htm/class_27.asp
-
stimmt, ich faules Stück *g*
Aber DANKE!