鬼火狼烟吧 关注:230贴子:5,311
  • 7回复贴,共1

怎么在BCB或VC中实现禁止dos中断

只看楼主收藏回复

大哥,怎么在BCB或VC中实现禁止dos中断(最好是BCB的,实在不行VC也可以)?
就是怎么能实现TC中的disable()和enable()?
因为BCB中没有dos.h,切确地说是它的dos.h已经把disable()的内容去掉了?
我在翻译一个TC的程序,把它变成BCB


IP属地:湖南1楼2006-06-10 20:54回复
    大哥,我已经找到了,是_disable和_enable;

    但找不到getvect和setvect这两个函数了
    我在头文件里找了,没有
    怎么在BCB里进行中断向量的操作


    IP属地:湖南2楼2006-06-10 22:23
    回复
      2026-03-06 11:20:20
      广告
      不感兴趣
      开通SVIP免广告
      TC的程序为什么需要翻译才能在BCB或者VC上跑?


      IP属地:日本3楼2006-06-11 14:07
      回复
        咦,我刚才发的帖子呢。。。


        5楼2006-06-12 10:02
        回复
          getvect和setvectBCB里面是绝对有的,可惜我不知道在哪个头文件,你找找看,我刚才在BCB官方站点查了一下,有使用方法,但是没有找到头文件。。。


          TC使用的一些DOS库的实现,在32位编译器中实现是不同的,所以需要一些转


          6楼2006-06-12 10:06
          回复
            我找到了另外一个实现方法,就是调用dos的中断函数,对于getvect的功能,它在中断向量表35H处所指向的函数中,只是我暂时还不知道怎么传递参数和调用它(应该用到asm汇编了吧?)


            不过我更期待能直接在BCB中用getvect和setvect函数
            在C中,它的头文件是dos.h
            但在BCB中的dos.h就没有找到了


            IP属地:湖南7楼2006-06-12 11:43
            回复
              在第4个帖子中有我给你找的BCB官方getvect的sample链接,不知道怎么的给百度删除了,你可以自己去bcb网站搜一下getvect就找到了


              8楼2006-06-12 15:22
              回复
                采用DOS功能调用"INT 21H"中的AH=25H来装入中断向量,其程序段为:
                MOV AL,N         ;中断号         
                MOV AH,25H       ;设置中断向量         
                MOV DX,SEG-INTR         
                MOV DS, DX        ;DS指向中断程序段址         
                MOV DX, OFFET-INTR   ;DX指向中断程序偏移量         INT 21H 
                setvect的功能就实现了
                改完成asm以后就能了
                getvect也是一样,呵呵
                谢谢大哥了


                IP属地:湖南10楼2006-06-12 22:08
                回复