CAcDcView *ms;
SetTimer(1,1000,TimeProc);
writeData是CAcDcView 的成员函数
void PASCAL CAcDcView::TimeProc(HWND hWnd, UINT nMsg, UINT nTimerID, DWORD dwTime)
{
me->WriteData();
}可是当程序执行到 me->WriteData();就会提示非法操作.这是什么原因
SetTimer(1,1000,TimeProc);
writeData是CAcDcView 的成员函数
void PASCAL CAcDcView::TimeProc(HWND hWnd, UINT nMsg, UINT nTimerID, DWORD dwTime)
{
me->WriteData();
}可是当程序执行到 me->WriteData();就会提示非法操作.这是什么原因
{
me->WriteData();
}
好像TimerProc不能是类成员。
另外,你说的"me"和"ms"是一回事吗?
如果TimerProc和me都是CAcDcView的成员函数,为什么还要用me->WriteData这种形式来引用呢?把me->去掉不是一样的吗?
诸多疑问,请予解答。
WriteData1()
{
return 0;
}VOID CALLBACK EXPORT TimerProc1(HWND hWnd,UINT nMsg,UINT nIDEvent,DWORD dwTime)
{
WriteData1();
}void CMainFrame::On1()
{
SetTimer(1,100,TimerProc1);
}
static void WINAPI TimeProc(HWND hWnd,UINT nMsg,UINT nTimerID,DWORD dwTime);
编译的时候没什么问题,运行时就提示非法操作,我怀疑是无法调用 me->WriteData();
to seeclear(看得清楚) ,你的VOID CALLBACK EXPORT TimerProc1(HWND hWnd,UINT nMsg,UINT nIDEvent,DWORD dwTime)怎么调用类的成员函数?
我把改为
VOID CALLBACK EXPORT TimerProc(HWND hWnd,UINT nMsg,UINT nIDEvent,DWORD dwTime)
{
me->WriteData();
}还是提示非法操作
在me->WriteData();处设置断点
检查一下me有没有指向一个Object
我用拉CAcDcView *ms = new CAcDcView;还是不行,我是在VOID CALLBACK EXPORT TimerProc(HWND hWnd,UINT nMsg,UINT nIDEvent,DWORD dwTime)
{
CAcDcView *ms = new CAcDcView
me->WriteData();
}