要求如下:
一直运行,占系统资源少;
到达指定的时间,运行相应程序。

解决方案 »

  1.   


    typedef UINT (CALLBACK* TIME_FUN)(LPVOID);DWORD StartTime ;
    DWORD CurrentTime ;
    DWORD IntervalTime;
    TIME_FUN TimeFun ;
    LPVOID Buffer ;// 启动
    void StartTimer(DWORD interval,TIME_FUN fun,LPVOID pParam)
    {
    StartTime = GetTickCount() ;
    IntervalTime = interval ;
    TimeFun = fun ;
    Buffer = pParam ;
    }// 执行过程
    void TimerProess()
    {
    CurrentTime = GetTickCount() ;
    if((CurrentTime-StartTime) > IntervalTime)
    {
    TimeFun(Buffer) ;
    StartTime = GetTickCount() ;
    }
    }// 执行函数
    UINT CALLBACK MyTimer(LPVOID param)
    {
    printf("%s\n",(char*)param);
    return 0;
    }int _tmain(int argc, _TCHAR* argv[])
    {
    StartTimer(2*1000,&MyTimer,"楼主在找我吗?"); while(true)
    {
    TimerProess();
    Sleep(15L);
    }
    cin.get();
    return 0;
    }
      

  2.   

    :)翻腾出来的小玩意,Buffer指向的是个区域变量,实际用要给它分配内存并且memcpy();
      

  3.   

    定时器就可以简单实现,不过优先级比较低
    单独的线程在判定时间条件满足时SetEvent也可以
    方法其实还是蛮多的
      

  4.   

    方法1:创建一个隐藏的窗口,然后对该窗口SetTimer,在WM_TIMER消息里处理任务。
    方法2:CreateWaitableTimer(),这是系统级别的高精度定时器,不过你必须再创建一个线程来异步调用你的任务,控制复杂些
      

  5.   

    newkt 
    意如流水
    编译连接时出错,什么原因呀?
    --------------------Configuration: test - Win32 Debug--------------------
    Compiling...
    test.cpp
    Linking...
    LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
    Debug/test.exe : fatal error LNK1120: 1 unresolved externals
    Error executing link.exe.
    Creating browse info file...test.exe - 2 error(s), 0 warning(s)
      

  6.   

    找不到main函数或者工程类型不对...