DJGPP下呼叫中斷的方法

2021-03-31 19:00:59 字數 960 閱讀 5996

djgpp是dos下完整的32位的c/c++保護模式的編譯器,執行於386以上機器。djgpp有乙個好幫手叫作allegro,它是個圖形/聲音程式設計庫,功能非常強大,應用於介面程式設計非常方便。可以allegro程式設計庫編寫程式,然後用djgpp編譯。

但是,因為djgpp是標準c,所以是不存在interrupt,setvect,putvect函式的,這樣會讓習慣turbo c的同志遇到點小麻煩,小弟現在就介紹「解決方法」。。。。:)

int _go32_dpmi_get_real_mode_interrupt_vector(int vector, _go32_dpmi_seginfo *info);

int _go32_dpmi_set_real_mode_interrupt_vector(int vector, _go32_dpmi_seginfo *info);

int _go32_dpmi_chain_protected_mode_interrupt_vector(int vector, _go32_dpmi_seginfo *info);

typedef struct _go32_dpmi_seginfo;

這就是dpmi.h標頭檔案的幾個函式,用法在下面介紹

_go32_dpmi_seginfo oldvect;

_go32_dpmi_seginfo newvect;

static int newfunction(); //應用的中斷處理函式

_go32_dpmi_get_protected_mode_interrupt_vector(0x0c, &oldvect);//取得舊中斷向量

newvect.pm_offset=(int)newfunction;//看看結構體的定義就明白了

_go32_dpmi_chain_protected_mode_interrupt_vector(0x0c,&newvect);//設定新中斷向量

這樣就可以了,^_^我也是新手  希望能對大家有點幫助 謝謝!

vbscript下呼叫 Dir 命令的方法

問 嗨,scripting guy!我想做一些看上去非常簡單的事情 在指令碼中呼叫 dir 命令。但是好像不起作用。怎樣實現我的想法呢?cr,墨西哥城,墨西哥 答 你好,cr.從你的郵件來看,你想做一件類似如下所示的簡單工作 set obpnnypxrhjshell createobject 程式設...

DOS下的DJGPP環境如何勾連硬體中斷

本文介紹了 djgpp 下如何安裝硬體 irq5 中斷。首先,宣告乙個中斷服務子函式 宣告中斷服務子函式,isr void fn void 然後開放中斷位 宣告資訊變數 掛接 define intr0x0d irq5 中斷向量是 0x0d unsigned char irq bit unsigned...

Windows下呼叫caffe的matlab介面

在我的這篇部落格windows caffe配置已經說了怎麼編譯了,這裡就略過了。編譯成功後,會得到如下圖所示檔案 matlab介面就在matcaffe資料夾裡。進入如下圖所示目錄,如果生成了caffe mexw64檔案,則說明matlab介面編譯成功了。1.先在系統環境變數 path 裡新增 d c...