方法一:
创建一个线程, 反复读系统时间不就可以了? 如果定时要求不严,用Sleep就可以了。
DWORD WINAPI TimerThread(LPVOID pamaram)
{
UINT oldTickCount, newTickCount;
oldTickCount = GetTickCount(); //获取的是毫秒数
while(TRUE)
{
while(TRUE)
{
newTickCount = GetTickCount(); // 获取的是毫秒数
if(newTickCount - oldTickCount >= 60000)
{
oldTickCount = newTickCount;
break;
}
else
SwitchToThread();
}
// 60毫秒自动调用函数
SomeFun();
}
return 0;
}

  

方法二: DLL中的线程函数可以象这样使用Timer
UINT ThreadProc(LPVOID)
{ SetTimer(NULL, 1, 5000, NULL);
MSG msg;
// PeekMessage 强制系统为该线程建立消息栈
PeekMessage(&msg, NULL, NULL, NULL, FALSE);
while (GetMessage(&msg, NULL, NULL, NULL))
{
switch (msg.message)
{
case WM_TIMER:
{
// 这里每5秒钟执行一次
}
break;
}
//TranslateMessage(&msg);
//DispatchMessage(&msg);
}
KillTimer(NULL, 1);
return 0;
}

  

DWORD tidTimer;
UINT uElapse; unsigned __stdcall TimerThreadProc(void *param)
{
MSG msg;
UINT_PTR hTimer; if ((hTimer = SetTimer(NULL, NULL, uElapse, 0)) == 0)
MessageBox(NULL, L"Set Timer failed.", L"Error", MB_OK);
while (GetMessage(&msg, NULL, 0, 0))
{
switch(msg.message)
{
case WM_TIMER:
//...
break; default:
break;
}
}
if (hTimer)
KillTimer(NULL, hTimer);
return 0;
} _beginthreadex(NULL, 0, TimerThreadProc, NULL, 0, &tidTimer); ... PostThreadMessage(tidTimer, WM_TIMER, 0, 0); //随后的某个事件处理中启动定时器

  

MFC的DLL中实现定时器功能的更多相关文章

  1. 定时器_在.net core3.0 webapi中添加自定义定时器功能

    前言:想在.net framework环境使用自定义定时器的话,参考我的另一篇文章:https://www.cnblogs.com/lxhbky/p/10242839.html 想在.net core ...

  2. 实现MFC扩展DLL中导出类和对话框

    如果要编写模块化的软件,就要对对动态链接库(DLL)有一定的了解,本人这段时间在修改以前的软件时,决定把重复用的类和对话框做到DLL中,下面就从一个简单的例子讲起,如何实现MFC扩展DLL中导出类和对 ...

  3. MFC的dll中控制资源问题

    有程序EXE和DLL,其中DLL中有1个函数用来显示对话框,被EXE调用.当EXE和DLL都为Release或Debug时,没有任何问题,但EXE为Release.DLL为Debug时,就会出错.该D ...

  4. 在共享DLL中使用MFC

    使用VS2008,在项目属性中有一项MFC的使用,有三种设置: 1.使用标准Windows库 2.在共享DLL中使用MFC 3.在静态库中使用MFC          第一种顾名思义.        ...

  5. Qt调用dll中的功能函数

    声明: 事先我已经自己动手写了一个简单的dll文件(myDLL.dll),C版接口的.并且用我前两篇有关DLL文章里面的方法,从dll中导出了导入库(.lib)文件,dll中有两个函数,原型如下:   ...

  6. WIN32 DLL中使用MFC

    最近用WIN32 DLL,为了方便要用到MFC的一些库,又不想转工程,就网上找了很多方法,发现没有详细的介绍,有的也行不通,现在成功在WIN32 DLL中使用了MFC,记录一下以防以后用到忘记 一.修 ...

  7. 【boost】MFC dll中使用boost thread的问题

    项目需要,在MFC dll中使用了boost thread(<boost/thread.hpp>),LoadLibraryEx的时候出现断言错误,去掉thread库引用后断言消失. 百度g ...

  8. 在WIN32 DLL中使用MFC

    最近用WIN32 DLL,为了方便要用到MFC的一些库,又不想转工程,就网上找了很多方法,发现没有详细的介绍,有的也行不通,现在成功在WIN32 DLL中使用了MFC,记录一下以防以后用到忘记 一.修 ...

  9. Win32 DLL和MFC DLL 中封装对话框

    现在最常看见的关于DLL的问题就是如何在DLL中使用对话框,这是一个很普遍的关于如何在DLL中使用资源的问题.这里我们从Win32   DLL和MFC   DLL两个方面来分析并解决这个问题.     ...

随机推荐

  1. SharePoint中Rating相关的字段。

      From: https://sharepoint.stackexchange.com/questions/194197/how-to-manipulate-likeby-nooflikes-rat ...

  2. 通过项目逐步深入了解Mybatis<二>

    Mybatis 解决 jdbc 编程的问题 1. 数据库链接创建.释放频繁造成系统资源浪费从而影响系统性能,如果使用数据库链接池可解决此问题. 解决:在SqlMapConfig.xml中配置数据链接池 ...

  3. 使用Genymotion模拟器或者手机运行ionic4程序

    1.使用命令行 #添加android, 如果是ios ,设置ioscordova platform add android #编译成apkionic build #开启cordova run andr ...

  4. 让.aspx同样实现.ashx文件的功能: IHttpHandler

    我们需要一个能够调用该处理程序的入口点.在此上下文中,该处理程序代码的入口点只不过是一个HTTP终点——即,一个公共的URL.该URL必须有一个惟一的名称,使IIS和ASP.NET运行库能够把它映射到 ...

  5. openfiler在esxi下的安装配置

    注意分区的时候如果硬盘太小自动分区会导致分配的卷大小不够用 后改为如下: 以root登录: 应该以openfiler登录,口令是password 也可以导入虚拟机安装 升级虚拟机硬件版本 终端登录用户 ...

  6. javascript将算法复杂度从O(n^2)做到O(n)

    compare the difference of two giving array, return results: 1. elements in both array, 2. elements o ...

  7. 安装了XAMPP,PHP怎么显示中文

    1.输出前加文件头.header("Content-type: text/html; charset=utf-8"); 另外注意你的文件编码要和 charset一致. 2. 可能是 ...

  8. ReactNative踩坑日志——页面跳转之——Undefined is not an Object(evaluating this2.props.navigation.navigate)

    页面跳转时,报  Undefined is not an Object(evaluating this2.props.navigation.navigate) 出错原因:在一个页面组件中调用了另一个组 ...

  9. 使用springMVC和Jquery实现JSONP

    JSONP这个东东是啥我就不写了,直接贴实现的代码 JAVA代码: /** * * 查询用户是否已经提交认证获取已经是认证会员 * * 使用spring mvc的直接返回string会遇到分号转义后字 ...

  10. django之环境变量配置

    1.配置python变量环境,C:\Python27\;C:\Python27\Scripts\ 2.配置django变量环境,C:\Python34\Lib\site-packages\Django ...