我正在爲我的大學開展一個項目。其中一點是我們不允許使用非靜態庫。當我處理中斷時,我想使用dos.h來避免使用匯編(setvect()而不是一堆裝配線代碼)複雜化。什麼樣的庫是dos.h(靜態或動態)?
考慮使用庫的部分的粗略翻譯是: 「...它只允許使用獨立於平臺(硬件和操作系統)的標準(靜態)C/C++庫。允許使用系統主機或動態庫(DLL)的特定庫「
有人可以告訴我什麼樣的庫是dos.h嗎?
我正在爲我的大學開展一個項目。其中一點是我們不允許使用非靜態庫。當我處理中斷時,我想使用dos.h來避免使用匯編(setvect()而不是一堆裝配線代碼)複雜化。什麼樣的庫是dos.h(靜態或動態)?
考慮使用庫的部分的粗略翻譯是: 「...它只允許使用獨立於平臺(硬件和操作系統)的標準(靜態)C/C++庫。允許使用系統主機或動態庫(DLL)的特定庫「
有人可以告訴我什麼樣的庫是dos.h嗎?
頭文件*.h
不是一個庫,它只是一組定義和聲明。
如果分配真正要你兩個使用硬件中斷和是獨立於操作系統的則是不一致的,因爲不同的操作系統定義硬件中斷的處理方式differentlty。
我懷疑你誤解了這項任務,應該請教導老師澄清。
響應添加評論
是的,寫一個小OS主要進行解釋的不一致性。如上所述,kernel32.dll可能提供了一些您想要使用的服務(例如setvect()
)。如果沒有操作系統,那麼就沒有OS服務可以依賴,你將不得不自己編寫(我認爲這是作業的一部分)。
我知道標題是一組定義和聲明,但是當我包含時,讓我們說iostream.h我間接包括iostream庫? 此外,任務是創建一個小但操作的內核。這可能是不一致的答案?我不確定。 我想我理解我獲得的大部分任務。即使我不是,我也不得不找到自己的方式。我從沒有教師,教授也沒有時間。 –
@InvaderZim - 請參閱上面的**添加** – msw
在這些情況下,您只能依賴需要出現在_Freestanding Implementation_中的標頭。這是C++中的一個特定術語,表示您粗略描述的內容 - 無OS支持等。特別是,既不是'
名稱「dos.h」意味着與「DOS」的關係,這對於操作系統非常特定!但這只是一個暗示:我不知道這個標題是什麼,而且你沒有提供任何上下文。什麼是'dos.h'?你正在使用哪個'dos.h'?你從哪裏得到它的?我現在可以爲你創建一個名爲'dos.h'的文件,它將完全獨立於平臺(儘管它幾乎肯定不會像你已經擁有的dos.h文件一樣)。 –
「,它們獨立於平臺(硬件和操作系統)」< - 嗯,'dos.h'肯定依賴於平臺(OS)。 –
謝謝。我認爲這不是獨立的,但我不確定,所以我問。似乎我將不得不以艱難的方式做到這一點。 @DanielFischer如果你將它作爲答案發布,我會除了它。 再次感謝您的答案。 [: –