2010. 3. 11. 00:56
프로그래밍
프로그램의 작성과 동작 원리는 위 그림처럼 간단한 편이다.
우선 소스 코드들 (.cpp, .c) 이 컴파일러에 의해서 컴파일 되면 바이너리 (기계어) 코드로 변경되어 .obj (오브젝트 코드)들로 저장이 된다.
그 후에 링커 (Linker)에 의해서 링크를 하게 되는데 이때 두가지 라이브러리를 사용할 수 있다. Static Library는 정적 라이브러리로써 실행 파일 (.exe)에 아예 포함되어 버리는 라이브러리다.
고로 .exe 자체가 소유하게 되므로 실행시에는 이 파일이 필요가 없다.
반대로 Import Library는 프로그램이 사용하는 특정 함수를 동적으로 가져다 쓰는 것으로써 실행을 위한 코드를 .exe 파일이 소유하는 것이 아니라 '어느 파일(DLL 파일들)에 니가 필요한 함수 뭐뭐가 있다더라' 라고 알려만 준다.
고로, .exe 파일을 실행할 때, 만약 내가 특정 함수를 DLL에서 불러와 사용했다면 반드시 해당 DLL과 .exe 파일을 연결 시켜 주어야 한다. 그렇지 않으면 .exe 는 실행 할 수가 없다는 에러 메세지를 띄운다.
.NET Framework는 이와는 조금 다르게 동작하기는 하지만 기본적으로 프로그램이 동작하는 원리는 비슷하다.
우선 소스 코드들 (.cpp, .c) 이 컴파일러에 의해서 컴파일 되면 바이너리 (기계어) 코드로 변경되어 .obj (오브젝트 코드)들로 저장이 된다.
그 후에 링커 (Linker)에 의해서 링크를 하게 되는데 이때 두가지 라이브러리를 사용할 수 있다. Static Library는 정적 라이브러리로써 실행 파일 (.exe)에 아예 포함되어 버리는 라이브러리다.
고로 .exe 자체가 소유하게 되므로 실행시에는 이 파일이 필요가 없다.
반대로 Import Library는 프로그램이 사용하는 특정 함수를 동적으로 가져다 쓰는 것으로써 실행을 위한 코드를 .exe 파일이 소유하는 것이 아니라 '어느 파일(DLL 파일들)에 니가 필요한 함수 뭐뭐가 있다더라' 라고 알려만 준다.
고로, .exe 파일을 실행할 때, 만약 내가 특정 함수를 DLL에서 불러와 사용했다면 반드시 해당 DLL과 .exe 파일을 연결 시켜 주어야 한다. 그렇지 않으면 .exe 는 실행 할 수가 없다는 에러 메세지를 띄운다.
.NET Framework는 이와는 조금 다르게 동작하기는 하지만 기본적으로 프로그램이 동작하는 원리는 비슷하다.
참조할 만한 관련글들
'프로그래밍' 카테고리의 다른 글
윈도우 7 및 윈도우 비스타 USB로 설치하기 (0) | 2010.09.04 |
---|---|
USB로 윈도우 XP 설치하기 (4) | 2010.07.01 |
유니코드 (Updated!) (4) | 2010.03.06 |
Managed 코드, Unmanaged 코드 그리고 Native 코드에 대한 이야기 (3) | 2010.03.05 |
Finding Convex Hull (Graham's Scan) - 외곽선 찾기, 임의의 사각형 내부에 임의의 점 존재 확인 (8) | 2010.02.18 |