Ik ben bezig met de hulp van het boek 'games programmeren in 24 uur' een programma te schrijven met een kleine enige erbij. Na foutjes te hebben weggewerkt dook bij het linken deze fout op:
error LNK2001: unresolved external symbol "protected: static class GameEnige * GameEnige::mpGameEnige" (?mpGameEnige@GameEnige@@1PAV1@A
Nu heb ik geen flauw idee wat er mis is, en de msdn site maakte het ook niet makkelijker. Een van de mogelijkheden was dat ik verschillende versies van een library door elkaar probeer te gebruiken, volgensmij doe ik dat niet.
Ik gebruik VC++ en hier is de code van de class:
error LNK2001: unresolved external symbol "protected: static class GameEnige * GameEnige::mpGameEnige" (?mpGameEnige@GameEnige@@1PAV1@A
Nu heb ik geen flauw idee wat er mis is, en de msdn site maakte het ook niet makkelijker. Een van de mogelijkheden was dat ik verschillende versies van een library door elkaar probeer te gebruiken, volgensmij doe ik dat niet.
Ik gebruik VC++ en hier is de code van de class:
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
| class GameEnige { protected: static GameEnige* mpGameEnige; HINSTANCE mhInstance; HWND mhWindow; TCHAR mszWindowClass[32], mszTitle[32]; WORD mwIcon, mwSmallIcon; int miWidth, miHeight, miFrameDelay; BOOL mbSleep; public: GameEnige (HINSTANCE hInstance, LPTSTR szWindowClass, LPTSTR szTitle, WORD wIcon, WORD wSmallIcon, int iWidth = 640, int iHeight = 480); virtual ~GameEnige(); static GameEnige* GetEnige(){ return mpGameEnige; }; BOOL Initialize(int iCmdShow); LRESULT HandleEvent(HWND hWindow, UINT msg, WPARAM wParam, LPARAM lParam); HINSTANCE GetInstance(){ return mhInstance; }; HWND GetWindow(){ return mhWindow; }; void SetWindow(HWND hWindow){ mhWindow = hWindow; }; LPTSTR GetTitle(){ return mszTitle; }; WORD GetIcon(){ return mwIcon; }; WORD GetSmallIcon(){ return mwSmallIcon; }; int GetWidth(){ return miWidth; }; int GetHeight(){ return miHeight; }; int GetFrameDelay(){ return miFrameDelay; }; void SetFrameRate(int iFrameRate){ miFrameDelay = 1000 / iFrameRate; }; BOOL GetSleep(){ return mbSleep; }; void SetSleep(BOOL bSleep){ mbSleep = bSleep; } }; |