请编写一个例子程序和一个DLL,实现一个回调。DLL提供如下函数:
SetESR((Func) *pEvt):建立Thread,内部设立一个计数器,该计数器每秒钟加1;Thread中,每秒钟以计数器作为参数,调用一次用户设定的该回调函数 *pEvt。EXE提供如下功能:
当*pEvt被回调时,在屏幕上显示一下计数器的值。

解决方案 »

  1.   

    int g_count = 0;
    UINT __stdcall AddThread(LPVOID lpVoid)
    {
      while(g_true)
      {
        Sleep(1000);
        g_count++;
        Func *pfun = (Func *)lpVoid;
        pfun(g_count);
      }
      return 0;
    }void SetESR(Func *pEvt)
    {
      unsigned int uiThreadID = 0;
      _beginthreadex(NULL, 0, pfun, (LPVOID)pEvt, 0, &uiThreadID);
    }
      

  2.   

    _beginthreadex(NULL, 0, AddThread, (LPVOID)pEvt, 0, &uiThreadID);
      

  3.   

    那部分是在DLL中的?那部分是在exe中的啊?