PDA

View Full Version : مشکل در برنامه TSR



Foad_hr1988
پنج شنبه 10 تیر 1389, 21:46 عصر
با سلام خدمت شما...من یک برنامه TSR از help خود C++‎‎‎‎‎‎ از قسمت setvect نوشتم...کار میکند. اما وقتی printf رو که داخل while هست رو از درون main برنامه داخل intrrupt یی که دستی نوشته شده کپی می کنم ، به محض اجرا ، برنامه بسته میشه و Error می ده...
برنامه رو میخوام طوری باشه که هر ثانیه که میگذره ، count اضافه بشه و چاپ بشه...

اگر ممکنه دلیل تعریف قسمت زیر رو هم بگویید....
چرا اینطوریه ، یعنی سه نقطه گذاشته و ...؟ اصلا نمی فهمم!!!
به چه دلیل در توابع بکار برده؟
اگر نباشه چی میشه؟



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


سورس برنامه اصلی که Error می ده :



#include <stdio.h>
#include <dos.h>
#include <conio.h>
#define INTR 0X1C /* The clock tick interrupt */
#ifdef __cplusplus
#define __CPPARGS ...
#else
#define __CPPARGS
#endif


void interrupt ( *oldhandler)(__CPPARGS);
int count=0;
void interrupt handler(__CPPARGS)
{
/* increase the global counter */
count++;


printf("count is %d",count);
/* call the old routine */
oldhandler();
}


int main(void)
{
/* save the old interrupt vector */
oldhandler = getvect(INTR);


/* install the new interrupt handler */
setvect(INTR, handler);


/* loop until the counter exceeds 20 */
// while (count < 20)
// printf("count is %d\n",count);


getch();


/* reset the old interrupt handler */
setvect(INTR, oldhandler);


return 0;
}