2012-12-10 5 views
1

저는 제 대학의 프로젝트를 진행하고 있습니다. 요점 중 하나는 비 정적 라이브러리를 사용할 수 없다는 것입니다. 인터럽트를 처리 할 때 나는 assembly.h (어셈블리 라인 코드 묶음 대신에 setvect())를 사용하여 복잡한 작업을 피하기 위해 dos.h를 사용하고 싶습니다.dos.h (정적 또는 동적) 라이브러리의 종류는 무엇입니까?

라이브러리 사용을 고려한 부분의 대략적인 번역은 다음과 같습니다 : "... 플랫폼 (하드웨어 및 OS)과 독립적 인 표준 (정적) C/C++ 라이브러리 만 사용할 수 있습니다. 시스템 호스트 또는 동적 라이브러리 (DLL)의 특정 라이브러리를 사용할 수 있습니다. "

dos.h는 어떤 종류의 라이브러리입니까?

+4

"dos.h"라는 이름은 OS와 매우 관련이있는 "DOS"와의 관계를 의미합니다! 그러나 이것은 단지 암시 일뿐입니다.이 헤더가 무엇인지 알지 못하고 컨텍스트를 제공하지 않습니다. 'dos.h '란 무엇입니까? 'dos.h'는 어느 것을 사용하고 있습니까? 너 어디서 났니? 'dos.h '라는 이름의 파일을 지금은 완전히 독립적 인 플랫폼으로 만들 수 있습니다 (거의 확실하게 이미'dos.h' 파일과 같은 일을하지는 않습니다). –

+2

"플랫폼 (하드웨어 및 OS)과 독립적입니다."- 음, dos.h는 플랫폼 (OS)에 가장 확실하게 의존합니다. –

+0

감사합니다. 나는 그것이 독립적이지 않다라고 생각했다. 그러나 나는 그렇게 물었다. 이 일을 힘들게해야 할 것 같습니다. @DanielFischer 답변으로 게시하는 경우 제외하고 싶습니다. 답장을 보내 주셔서 다시 한번 감사드립니다. [: –

답변

6

헤더 파일 *.h은 정의와 선언의 집합입니다.

할당이 진정으로 모두 사용하는 하드웨어가 이 OS는 독립적 중단 에 당신을 요청하는 경우 다른 운영 체제는 하드웨어 인터럽트가 differentlty을 처리하는 방법을 정의하기 때문에 다음이 일치하지 않습니다.

본인은 과제를 오해하고있는 것으로 의심되며 강사에게 문의하십시오.

대부분 불일치를 설명 않는 작은 OS를 작성,

코멘트에 반응했다. 위에서 언급했듯이 kernel32.dll은 사용자가 사용하고자하는 일부 서비스 (예 : setvect())를 제공합니다. 운영 체제가 없다면 의존 할 OS 서비스가 없기 때문에 직접 작성해야합니다 (할당 목적의 일부 임).

+0

헤더가 정의와 선언의 집합이라는 것을 알고 있지만 포함 시키면 iostream 라이브러리를 포함하는 iostream.h를 간접적으로 말합니까? 또한 작업은 작지만 작동하는 커널을 만드는 것입니다. 그것은 불일치에 대한 해답이 될 수 있습니까? 나는 잘 모르겠다. 나는 내가 주어진 과제의 대부분을 이해했다고 생각한다. 그리고 내가 아니었다 고해도 나는 내 길을 찾아야 할 것입니다. 내가 출신이고 교수에게는 시간이없는 강사가 없습니다. –

+0

@InvaderZim - ** added ** above – msw

+1

이러한 상황에서는 _Freestanding Implementation_을 위해 필요한 헤더에만 의존 할 수 있습니다. 이것은 C++의 특정 용어이며 대략적으로 묘사하는 것을 의미합니다. OS 지원 등은 없습니다. 특히, ''도 'dos'도 없습니다.h "는 공식적으로 독립적 인 구현의 일부입니다. – MSalters

관련 문제