webForumDet fria alternativet

Länkproblem med VC++ 6.0

C/C++

5 svar · 177 visningar · startad av fnolis

Medlem sedan sep. 200162 inlägg
Frågan#1

Tänkte börja från scratch med windowsprogrammering... hittade lite exempel som man kan leka med men när jag gör:

// main.cpp
#include "CMain.h"
#include <windows.h>

int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
CMain* p_main = CMain::getInstance();

return p_main-\>init(hInst, lpCmdLine, nCmdShow);

}

//CMain.h
#ifndef _CMain_
#define _CMain_

#include <windows.h>

class CMain
{
public:
int init( HINSTANCE hInst, LPSTR lpCmdLine, int nCmdShow );
static LRESULT CALLBACK WindowProc( HWND hWnd, UINT uiMessage, WPARAM wParam, LPARAM lParam );
static CMain *getInstance() { return &m_instance; }

private:

static CMain m_instance;
CMain( void ){}

};

#endif //_CMain_

får jag felet:

Main.obj : error LNK2001: unresolved external symbol "private: static class CMain CMain::m_instance" (?m_instance@CMain@@0V1@A)
Debug/Firepower.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.

Hjälp?

Medlem sedan okt. 20013 217 inlägg
#2

Visst borde..

static CMain m_instance;

vara...

static CMain* m_instance;

???

Medlem sedan sep. 200162 inlägg
#3

nopes det ska det inte vara... det är jag hundra på...

Medlem sedan okt. 20013 217 inlägg
#4

Försöker du göra en singelton ?

Medlem sedan okt. 20013 217 inlägg
#5

Annars brukar man implemetera en singelton så här :

Deklarationen av klassen.

class Singleton {
public:
   static Singleton* Instance();
   void foo(void);
protected:
   Singleton();
private:
   static Singleton* m_pInstance;
};

Implementationen...

Singleton* Singleton::m_pInstance = 0;
    
Singleton* Singleton::Instance () {
   if (m_pInstance == NULL)
      m_pInstance = new Singleton;
   return m_pInstance ;
};

Anropet ser ut så här :

...
Singleton::Instance()->foo();
...
Medlem sedan sep. 200162 inlägg
#6

njaä... inte riktigt... hade glömt att skriva
CMain CMain::m_instance;
i .cpp filen... *suck*

men tack i alla fall

258 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)