当前位置: 代码迷 >> C语言 >> 模拟VB中的Timer控件 - 最近在研究TSR程序
  详细解决方案

模拟VB中的Timer控件 - 最近在研究TSR程序

热度:314   发布时间:2005-07-15 15:06:00.0
模拟VB中的Timer控件 - 最近在研究TSR程序

最近在研究TSR驻留程序的编写,今天稍微有点眉目,写了个事件发生器之类的程序。不过有个问题无法解决,就是如何使程序退出驻留还有就是使程序不会反复的驻留内存,望各位高手指点迷津,谢谢。。 下面是我的程序: #include <dos.h> #include <stdio.h>

#define TIMER 0x1C

#ifdef __cplusplus #define __CPPARGS ... #else #define __CPPARGS #endif

/* 将应用程序弄得小一点,以便在内存中驻留 */ extern unsigned _heaplen = 1024; extern unsigned _stklen = 512;

/* 用于接收旧的时钟中断 */ void interrupt (*int1C)(__CPPARGS); /* 自定义一个新的时钟中断 */ void interrupt timer(__CPPARGS) { static int count=0; /* 每一秒钟产生一次Hello,world事件 (估算 54毫秒*20=1004毫秒=1秒) */ if(count<20) count++; else { puts("Hello,world!"); count=0; } /* 调用旧的时钟中断事件 */ int1C(); }

int main(void) { int1C=getvect(TIMER); /* 获得旧的时钟中断事件 */ disable(); setvect(TIMER,timer); /* 设置新的自定义时钟事件 */ enable(); /* 驻留内存(引用TC3.0帮助手册中Keep函数的范例 */ keep(0, (_SS + (_SP/16) - _psp)); return 0; /* 注意这个return,据我研究好像是用于驻留后再次调用main()函数*/ }

搜索更多相关的解决方案: 模拟  控件  Timer  TSR  

----------------解决方案--------------------------------------------------------
  相关解决方案