Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[疑問]在vc內寫重設中斷定義的程式

1 view
Skip to first unread message

klass

unread,
Jan 4, 2002, 10:57:55 AM1/4/02
to

下面這段程式範例,是要將int7這個新的中斷重新定義
而這樣的程式在turbo可以跑,可是換到vc跑以後,就
會顯示錯誤
error C2146: syntax error : missing ';' before identifier 'int_0x07'
error C2182: 'interrupt' : illegal use of type 'void'
fatal error C1004: unexpected end of file found
請問各位高手能否告知,在vc下如何重設定中斷定義呢....感激不盡^^
---------------------------------
#include "conio.h"

void interrupt int_0x07();
void interrupt (*oldfunc)();
void interrupt int_0x07()
{
_outp(0x700,0x00);
}


int main(int argc, char* argv[])
{
oldfunc=getvect(0x07);
setvect(0x07,int_0x07);
setvect(0x07,oldfunc);
return 0;
}
--
[1;31mO [1;32mr [1;33mi [1;34mg [1;35mi [1;36mn [1;31m: [1;36m<不良牛牧場> [1;33mzoo.ee.ntu.edu.tw [1;32m(140.112.18.36) [m
[1;32mWelcome to SimFarm BBS [1;36m-- [m [1;31mFrom : [ [mu47-238.u203-204.giga.net.tw [1;31m] [m

流氓魚....

unread,
Jan 4, 2002, 11:37:56 AM1/4/02
to
在心底飛揚的彩色故事 動人依舊 感心亦深
回憶與感受 只在剎那間 瞬間領略人世一切之美
活著真好 不是嗎

一曰命 二云運 我生來自於渾沌 將往渾沌去
焉知賴以生者 有何義 宛如蜉蚍撼大地
盤古天地以我為中心 茫茫然 既悲兮愚蠢
豈知不以此為剛紀 又將安措其手 又將何以立天地
我已醉於酣然世紀 只知生從何來 死往何去
唯有一口酒來一口嘆息 大聲呼─我沒那種命....

風大雨小雷聲無 我期盼著不可能的歸宿 亂風舞
內心淒涼愁更長 此事且擱
更進一杯 與我同醉
更有何事 且他去 人生不過走一回 今朝有酒今朝醉

狗比人可愛 狗比人憐

「一千個傷心的理由 一千個傷心的理由 最後在別人的故事裡 我被遺忘」
─張學友 一千個傷心的理由
「還記得我們最後的決裂 憎恨著彼此 卻有捨不得的眼淚
我走也不是 留也不行 直到今天 還是不懂 當初為何要分開 走了嗎」
─袁惟仁 走了嗎

「嘿~我要走了 昨天的對白 已不再重要
我已見過最美的一幕 只是在此刻 都要結束」─五月天 嘿~我要走了
「我並不想成為誰的指南針 也許你該學習相信自己的方向感」─1976 方向感

「你要我自由飛翔 我沒有翅膀」─動力火車 翅膀之歌

「有誰 來買我的火柴 有誰 將一根根希望全部點燃
有誰 來買我的孤單 ..................... 」─熊天平 火柴天堂

「背叛了自己卻一樣被看扁」─四分衛「飛上天」
「不需要任何聲音 站在遠方
我用壞掉的靈魂 一遍又一遍...呼喊...」─四分衛「思念是最遙遠的距離」 M.1009459938.Asunlaugh12/27Re: M.1009459334.AHmfish12/27(qre) M.1009290137.AHmfish12/25(qre) M.1009159927.AMdoafriend12/24[通告] 耶誕快樂!M.1009120655.AHmfish12/23(plins) M.1009116022.AHmfish12/23(plins) 賤人....M.1009115697.Aplins12/23Re: 抓姦...==> klas...@zoo.ee.ntu.edu.tw (klass) 提到�LoveLetter 18:29:19 ume ExpFinanceGRADbase
# This fileNCUPingTungthe addresses anFirstTimer local hosts thatNCUTaichung.
# In the preseNCUPanChiaon name service NCUChemistrymay
# not be coNCUYangMingsee /etc/host.coNCUNeiHusolution order.
#
#NCUQueerost localhost.my.doNCUChangHuaomain
127.0.0.1 NCUCounsellhost.my.domain mNCUChinain
140.115.83.240 Homepagedu.tw
#
# ImaginarNCUTungSha.0.2 myname.my.dNCUSkating0.0.0.3 myfriendNCUWulingriend
#
# AccordinNCUHualienyou can use the fNCUMTClubtworks for
# privaNCUPhoto will never be connNCUMagicInternet:
#
# 10.0.NCUpingpong55.255
# 172.16.NCUPiano1.255.255
# 192.16Redology168.255.255
#
# In NCUDance to be able to connNCUGraduatenet, you need
# NCUAborigineigned numbers. NCUDebate PLEASE do not tryNCUChungHour own network nuNCUPainttead get one from NCUVolunteervider (if any) NCUSongShanrnet Registry (fNCUBuddhismnic.net, directoNCUMusics').
YSOPster21/96★ 舞蹈社團動態...E WORLD@次宿舍 鷟膩K(#(在心底飛揚的彩色故事 動人依舊 感心亦深=> klas...@zoo.ee.ntu.edu.tw (klass) 提到:e(蕞!4鷟��
YSOPster21/96★ HOT DANCE態...E WORLD@次宿舍 鷟膩K(牙蕞紆蕞D钂�/othersbge(蕞!4鷟�� ($8鷟濁�0
YSOPster21/96★ 芭蕾舞...態...E WORLD@次宿舍 鷟膩K(牙蕞紆蕞D钂�/balaybge(蕞!4鷟�� ($8鷟濁�P
YSOPster21/96★ PUB.....態...E WORLD@次宿舍 鷟膩K(牙蕞紆蕞D钂�/PUBybge(蕞!4鷟�� ($8鷟濁�p
牙蕞紆蕞D钂篙 ($8鷟濁��������

0
@
P
`
p
taGppworldNCUTaekwondoNCUAstroJapaneseNCUHarmonicaNCUCULTURECYITIM92VITEE89CCYITIT88ANCUChinese92BeautyNCUNCUChinese94NCUChinese93VITIM91ANCUChemEng9NCUCE92ANCUFinance93NCUFinance92NCUChemG90NTCVCM91THITEE90ANCUSilenceVITEE89NCUCE90ANCUCECM89NCUFinance94NCUShulinJiDe83311CYITEE90AVITEE89ACKSH0031NCUFrench93NCUFrench94NCUTsaihsingVITIM89DTHITEE92BVITEE88FCYSH89320METROSYSTEMVITIM89CVITIM90DVITIM90BNCUTaiChiboards/Dance/.DI

下面這段程式範例,是要將int7這個新的中斷重新定�: 而這樣的程式在turbo可以跑,可是換到vc跑以後,就


: 會顯示錯誤
: error C2146: syntax error : missing ';' before identifier 'int_0x07'
: error C2182: 'interrupt' : illegal use of type 'void'
: fatal error C1004: unexpected end of file found
: 請問各位高手能否告知,在vc下如何重設定中斷定義呢....感激不盡^^
: ---------------------------------
: #include "conio.h"
: void interrupt int_0x07();
: void interrupt (*oldfunc)();
: void interrupt int_0x07()
: {
: _outp(0x700,0x00);
: }
: int main(int argc, char* argv[])
: {
: oldfunc=getvect(0x07);
: setvect(0x07,int_0x07);
: setvect(0x07,oldfunc);
: return 0;
: }

--
◎ [1;31m龍 [32m貓 [33m資 [34m訊 [35m天 [36m地 [0m( [1mbbs.mgt.ncu.edu.tw [0m)
◎[ [1;33;46mmfish [0m]From: sw59-128-29.adsl.seed.net.tw

鼓掌部隊

unread,
Jan 8, 2002, 10:35:56 PM1/8/02
to
"klass" <klas...@zoo.ee.ntu.edu.tw> 撰寫於郵件新聞
:3kE5MD$0...@zoo.ee.ntu.edu.tw...

>
> 下面這段程式範例,是要將int7這個新的中斷重新定義
> 而這樣的程式在turbo可以跑,可是換到vc跑以後,就
> 會顯示錯誤
> error C2146: syntax error : missing ';' before identifier 'int_0x07'
> error C2182: 'interrupt' : illegal use of type 'void'
> fatal error C1004: unexpected end of file found
> 請問各位高手能否告知,在vc下如何重設定中斷定義呢....感激不盡^^

VC不支援DOS,一定要在WINDOWS系統上跑,包括VC做出來的執行檔也是只能在WINDOWS
上面跑

在WINDOWS上要改中斷,那應該是要寫DRIVER,不是三兩天做得出來的

如果你只是要在DOS裡面跑,用TURBO C就可以了


klass

unread,
Jan 14, 2002, 11:01:07 AM1/14/02
to
※ 引述《"鼓掌部隊" <rick...@hotmail.com>, 看板: OOP》之銘言:
: "klass" <klas...@zoo.ee.ntu.edu.tw> 撰寫於郵件新聞
首先非常感謝您的回答....

不過就我所知在tc下的硬體控制指令有outp(),而在vc下有相對應的
函式_outp()可以使用

那麼在tc下有重設中斷定義的指令,應該也有vc版重設中斷定義的指令吧??
應該用不到寫個driver吧^^|

鼓掌部隊

unread,
Jan 14, 2002, 11:00:40 PM1/14/02
to
"klass" <klas...@zoo.ee.ntu.edu.tw> 撰寫於郵件
news:3kLiPJ$_...@zoo.ee.ntu.edu.tw...

> ※ 引述《"鼓掌部隊" <rick...@hotmail.com>, 看板: OOP》之銘言:
> : "klass" <klas...@zoo.ee.ntu.edu.tw> 撰寫於郵件新聞
> : :3kE5MD$0...@zoo.ee.ntu.edu.tw...
> : > 下面這段程式範例,是要將int7這個新的中斷重新定義
> : > 而這樣的程式在turbo可以跑,可是換到vc跑以後,就
> : > 會顯示錯誤
> : > error C2146: syntax error : missing ';' before identifier 'int_0x07'
> : > error C2182: 'interrupt' : illegal use of type 'void'
> : > fatal error C1004: unexpected end of file found
> : > 請問各位高手能否告知,在vc下如何重設定中斷定義呢....感激不盡^^
> : VC不支援DOS,一定要在WINDOWS系統上跑,包括VC做出來的執行檔也是只能在
WINDOWS
> : 上面跑
> : 在WINDOWS上要改中斷,那應該是要寫DRIVER,不是三兩天做得出來的
> : 如果你只是要在DOS裡面跑,用TURBO C就可以了
> 首先非常感謝您的回答....
>
> 不過就我所知在tc下的硬體控制指令有outp(),而在vc下有相對應的
> 函式_outp()可以使用
>
> 那麼在tc下有重設中斷定義的指令,應該也有vc版重設中斷定義的指令吧??
> 應該用不到寫個driver吧^^|
Borland系列的compiler,是用outportb()/outport(),當然到了WINDOWS時代,這些函
數都已經不提供了
VC下應該沒有outp這個函數吧,你的VC是侏羅紀時代的版本嗎?
WINDOWS下面硬體都是被作業系統保護住的,應用程式不能直接存取,要存取就要擴充
作業系統,也就是寫個Driver
9X底下,BCB是有bcbio.h可以用
其他還有WinIo... 等等有的沒的東西
上搜尋引擎找一下吧


rjl...@csie.nctu.edu.tw

unread,
Jan 17, 2002, 12:58:33 AM1/17/02
to
鼓掌部隊 <rick...@hotmail.com> 提到:
: "klass" <klas...@zoo.ee.ntu.edu.tw> 撰寫於郵件

: news:3kLiPJ$_...@zoo.ee.ntu.edu.tw...
: > ※ 引述《"鼓掌部隊" <rick...@hotmail.com>, 看板: OOP》之銘言:
: WINDOWS
: > 首先非常感謝您的回答....

: > 不過就我所知在tc下的硬體控制指令有outp(),而在vc下有相對應的
: > 函式_outp()可以使用
: > 那麼在tc下有重設中斷定義的指令,應該也有vc版重設中斷定義的指令吧??
: > 應該用不到寫個driver吧^^|
: Borland系列的compiler,是用outportb()/outport(),當然到了WINDOWS時代,這些函
: 數都已經不提供了
: VC下應該沒有outp這個函數吧,你的VC是侏羅紀時代的版本嗎?
VC有啊~ 只是多了一個底線, _outp(), _outpw(), _outpd() 等

: WINDOWS下面硬體都是被作業系統保護住的,應用程式不能直接存取,要存取就要擴充

: 作業系統,也就是寫個Driver
: 9X底下,BCB是有bcbio.h可以用
: 其他還有WinIo... 等等有的沒的東西
: 上搜尋引擎找一下吧

--
Ren-ji Liao

鼓掌部隊

unread,
Jan 17, 2002, 10:56:22 AM1/17/02
to
<rjl...@csie.nctu.edu.tw> 撰寫於郵件
news:a25p68$1f12$1...@netnews2.csie.nctu.edu.tw...
> 鼓掌部隊 <rick...@hotmail.com> 提到:

> : VC下應該沒有outp這個函數吧,你的VC是侏羅紀時代的版本嗎?
> VC有啊~ 只是多了一個底線, _outp(), _outpw(), _outpd() 等

那你就... 試試看囉
反正電腦也不會爆炸,頂多就是跳一個視窗出來跟你抗議一下而已

--
試不出來也不用太自責,本來就應該不行的


0 new messages