不好意思,我刚开始学,出现错误如下:
dingshiqi.cpp(13) : error C2059: syntax error : ','
目的:每个五百毫秒输出一个数,程序如下:   请大家指点迷津,谢谢
#define ID_CLOCK      
#include <windows.h>
#include <iostream.h>
int i=0;
void OnTimer(UINT nIDEvent)
{
cout<<i<<endl;
i++;
OnTimer(nIDEvent);
}
void start()
{
SetTimer(NULL, ID_CLOCK, 500, OnTimer());
}
void main()
{
start();
}

解决方案 »

  1.   

    #define ID_CLOCK      ??
    不是吧
      

  2.   

    #define ID_CLOCK     1  //2,3,4都可以
    #include <windows.h>
    #include <iostream.h>
    .............
      

  3.   

    #define ID_CLOCK      ??
      

  4.   

    你的ID_CLOCK没有定义确定的数值
    可以这样
    #define ID_CLOCK 1
      

  5.   

    加上了一个数字,还是不行,错误如下:
    dingshiqi.cpp(13) : error C2660: 'OnTimer' : function does not take 0 parameters
    可是OnTimer明明有参数的呀
             void OnTimer(UINT nIDEvent)和
    SetTimer(NULL, ID_CLOCK, 500, OnTimer());
    这两句时不是出了问题呢
      

  6.   

    void main()
    {
       for ( ) {
        cout <<  
        sleep(500);
       }
    }
      

  7.   

    是不是这一句 SetTimer(NULL, ID_CLOCK, 500, OnTimer());的OnTimer()没参数
      

  8.   

    不是的,OnTimer()里我试着加过参数,还是不行,
      

  9.   

    void CALLBACK TimerProc(HWND hwnd, UINT msg, UINT idTimer, DWORD dwTime);SetTimer(hwnd, ID_CLOCK, 500, TimerProc);
      

  10.   

    SetTimer(NULL, ID_CLOCK, 500, OnTimer());
    最后一个参数是函数地址
    不能带括号的
    另外的你应该把OnTimer定义成为回调函数
    call back
      

  11.   

    是的,下面程序已经可以运行了,只是在void CALLBACK TimerProc函数体中好像还得调用一个函数,他是什么呢,我在msdn中没查到
    #define ID_CLOCK    1  
    #include <windows.h>
    #include <iostream.h>HWND hWnd ;
    int i=0;
    void CALLBACK TimerProc(HWND hwnd, UINT uMsg,
          UINT idEvent, DWORD dwTime )
    {
    cout<<i<<endl;
    i++;
    }
    void start()
    {
    SetTimer(hWnd , ID_CLOCK, 500, TimerProc);
    }
    void main()
    {
    start();
    }