SetTimer函数问题
请问下面代码中的回调函数(TimeProc)怎么没有执行啊。帮帮忙啊。。。还是它就不能在控制台下运行啊。。。。
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
const int IDT_TIMER1 = 0;
void CALLBACK TimeProc(HWND hwnd, UINT uMsg, UINT_PTR idEvent, DWORD dwTime)
{
MessageBox (0, "Test Message from DLL!\n", "DLL Message", MB_ICONINFORMATION);
}
int main(int argc, char *argv[])
{
HANDLE hwnd;
HANDLE hDev;
char buf[512] = {'\0'};
DWORD num;
int i = 0;
system("title Test");
hwnd = FindWindowA(NULL,"Test");
if (hwnd == INVALID_HANDLE_VALUE)
{
fprintf(stderr, "Not found\n");
exit(1);
}
num = SetTimer(NULL, IDT_TIMER1, 1000, TimeProc);
printf("handle=%#x --------------->>>> Timer ok? %#x Err:%d\n", hwnd, num, GetLastError());
printf("--------------------------------------------------------------------"
"-----------\n", hwnd, num, GetLastError());
hDev = CreateFileA("\\\\.\\PHYSICALDRIVE0", GENERIC_READ, FILE_SHARE_READ,
0,
OPEN_EXISTING,
0,
0);
if (hDev == INVALID_HANDLE_VALUE)
{
fprintf(stderr, "\\\\.\\PHYSICALDRIVE0 Open Error\n");
exit(1);
}
ReadFile(hDev, buf, 512, &num, NULL);
CloseHandle(hDev);
for (i=0; i<512; i++)
{
printf("%02X%c", buf[i]&0xFF, (i+1)%26?' ':'\n');
}
printf("\nNum: %d bytes", num);
_getch();
return 0;
}
...全文
相关推荐
怎么往SetTimer的回调函数传递参数
怎么往SetTimer的回调函数传递参数
cSharp-settimer.zip_C settimer killtimer_C# settimer
C# SetTimer() KillTimer() 演示 调用系统user32进行计时并输出,时长为1秒。10秒钟后自动停止。
VC 处理多个定时器
VC 处理多个定时器,你可以设计多个(到底可以支持多少个我也不太清楚,我这里是用了5个)没问题;
api定时器(vb)
这是一个利用api所编写的定时器,值得提供给大家一起学习。
VC 实现非窗口类中使用定时器的方法
这是一个很综合的例子,有非窗口怎么使用定时器,静态函数怎么访问非静态函数,很不错的例子!


