代码如下:
static UINT m_nTimer;
void TdmPdmToolsReg::AutoEvaluate()
{
// TdmPdmToolsReg *p=new TdmPdmToolsReg();
// p->m_nTimer=SetTimer(NULL,1,5000,(TIMERPROC)TimeProc);
// TdmPdmToolsReg::m_nTimer=SetTimer(NULL,1,5000,(TIMERPROC)TimeProc);
m_nTimer=SetTimer(NULL,1,5000,(TIMERPROC)TimeProc);}
void CALLBACK TdmPdmToolsReg::TimeProc(UINT nIDEvent)
{// TdmPdmToolsReg *p=new TdmPdmToolsReg();
if (nIDEvent==m_nTimer)
{
AfxMessageBox("ok");
}
}运行出错:error LNK2001: unresolved external symbol "public: static unsigned int TdmPdmToolsReg::m_nTimer" (?m_nTimer@TdmPdmToolsReg@@2IA)我查了一下资料,静态函数只能调用静态成员变量。但是调用的时候就会报错。注释掉的语句,是我试过的方式。但是都会在静态变量这里报错。大家指点一下:)
static UINT m_nTimer;
void TdmPdmToolsReg::AutoEvaluate()
{
// TdmPdmToolsReg *p=new TdmPdmToolsReg();
// p->m_nTimer=SetTimer(NULL,1,5000,(TIMERPROC)TimeProc);
// TdmPdmToolsReg::m_nTimer=SetTimer(NULL,1,5000,(TIMERPROC)TimeProc);
m_nTimer=SetTimer(NULL,1,5000,(TIMERPROC)TimeProc);}
void CALLBACK TdmPdmToolsReg::TimeProc(UINT nIDEvent)
{// TdmPdmToolsReg *p=new TdmPdmToolsReg();
if (nIDEvent==m_nTimer)
{
AfxMessageBox("ok");
}
}运行出错:error LNK2001: unresolved external symbol "public: static unsigned int TdmPdmToolsReg::m_nTimer" (?m_nTimer@TdmPdmToolsReg@@2IA)我查了一下资料,静态函数只能调用静态成员变量。但是调用的时候就会报错。注释掉的语句,是我试过的方式。但是都会在静态变量这里报错。大家指点一下:)
void CALLBACK TimerProc(
HWND hwnd,
UINT uMsg,
UINT idEvent,
DWORD dwTime );
然后在函数中直接用到:
m_nTimer=SetTimer(NULL,1,5000,(TIMERPROC)
在.cpp中
UINT TdmPdmToolsReg::m_nTimer=****;
//a.h
class A{
pulbic:
A();
~A();
static int a;
void Showa();
};//a.cpp
int A::a = 0;//Initializevoid A::Showa()
{printf("%d",a);}