C++학습 여행 Windows 프로그램 내부 운행 원리

C++를 배 우 는 것 은.net 과 달리 윈도 프로그램 내부 의 운행 원 리 를 반드시 알 아야 한다.왜냐하면 그 가 언급 한 것 은 대부분이 운영 체제 의 호출 이 고.net 은.net FrameWork 에서 연극 을 부 르 기 때문이다.
       그럼 윈도 응용 프로그램,운영 체제,컴퓨터 하드웨어 간 의 상호 관계 가 도대체 무엇 인지 아래 의 그림 은 좋 은 설명 을 해 준다.

      아래 화살표 ① 응용 프로그램 이 판단 처 리 를 실행 한 결과 출력 장치 로 출력 합 니 다.
      위로 화살표 ② 는 입력 장치 로 운영 체제 에 입력 합 니 다.
      아래쪽 화살표 ③ API 를 대표 합 니 다.다음 API 가 무엇 인지 설명해 야 합 니 다.API 는 응용 프로그램 인터페이스 입 니 다. 응용 프로그램 이 운영 체제 에 구체 적 인 동작 을 수행 하도록 알려 줄 수 있 음 을 나타 낸다.예 를 들 어 운영 체제 가 사 운 드 카드 의 소 리 를 제어 할 수 있 지만 언제 어떤 소 리 를 내야 할 지 모 르 기 때문에 응용 프로그램 이 운영 체제 에 어떤 소 리 를 내야 하 는 지 알려 줘 야 한다.이 관 계 는 마치 로봇 이 걷 는 기능 을 완성 할 수 있 는 것 과 같다.그러나 사람들 이 그것 에 게 어느 방향 으로 가 는 지 알려 주지 않 으 면 로봇 은 주동 적 으로 걷 지 않 을 것 이다.이곳 의 로봇 은 바로 운영 체제 이 고 사람들 은 응용 프로그램 이다.프로그래머 에 게 는 함수 라 이브 러 리 를 호출 할 수 있 고 C+프로그래머 는 운영 체제 에 동일 하 게 사용 된다 고 이해 할 수 있다.자바 에서 호출 된 API 는 jdk 에서 제공 하 는 함수 라 이브 러 리 입 니 다.net 프로 그 래머 는.net 프레임 워 크 가 제공 하 는 함수 라 이브 러 리 입 니 다.
     위로 향 하 는 화살표 ④ 는 운영 체제 가 입력 장치 의 변 화 를 응용 프로그램 에 업로드 할 수 있 음 을 나타 낸다.만약 에 사용자 가 특정한 프로그램 이 활동 할 때 키 보드 를 누 르 면 운영 체 제 는 이 사건 을 감지 할 수 있 고 사용자 가 누 른 키 를 알 수 있 습 니 다.운영 체 제 는 이 사건 에 대해 어떻게 반응 하 는 지 결정 하지 않 고 이 사건 을 응용 프로그램 에 전달 하고 응용 프로그램 이 이 사건 에 어떻게 반응 하 는 지 결정 합 니 다.마치 운전 자가 운전 을 하 다가 앞 에 차 를 만 나 는 것 을 본 것 처럼 우리 의 신경 말초(운영 체제 에 해당)는 바로 이 사건 을 감지 하고 우리 의 뇌(응용 프로그램 에 해당)에 전달 했다.우리 의 뇌 는 최종 적 으로 이 사건 에 어떻게 반응 할 것 인 가 를 결정 했다.예 를 들 어 브레이크 를 밟 고 멈 추 거나 용감하게 부 딪 히 는 것(sb 방법)이다.사건 에 반응 하 다.
      운영 체 제 는 어떻게 감지 되 는 사건 을 응용 프로그램 에 전달 합 니까?이것 은 메시지 메커니즘(Message)을 통 해 이 루어 진 것 이다.운영 체 제 는 모든 사건 을 메시지 라 는 구조 체 MSG 로 포장 하여 응용 프로그램 에 전달 하고 MSDN 을 참조 합 니 다.MSG 구 조 는 다음 과 같이 정의 합 니 다.typedef struct tagMSG{HWND hwnd;UINT message; WPARAM wParam; LPARAM lParam; DWORD time; POINT pt; } MSG;메시지 응답 
     사실 여기에 쓰 여 있 습 니 다.3 년 동안.net 개발 자로 일 했 습 니 다.여기 서 느 낀 바 가 있 습 니 다.C++는 이 렇 습 니 다..net 이벤트 응답 메커니즘 입 니 다.언제 소식 메커니즘 이 아니 었 는가?메시지 메커니즘 은 프로그램 계 의 질 적 인 비약 이자 이러한 메시지 메커니즘 이다..net 프로그래머 의 컨트롤 을 너무 꽉 막 고 컨트롤 만 끌 수 있 는 프로그래머 를 많이 만 들 었 다.나 는 C++를 배 웠 는데 도 정말 탁 트 이 는 느낌 이 들 었 다.net 프로그래머,C++를 많이 보 세 요!

좋은 웹페이지 즐겨찾기