IT공부/IT서적

[뇌를 자극하는 윈도우즈 시스템 프로그래밍] 21장. Dynamic Linking Library

shine94 2025. 3. 12. 07:36

* 해당 글은 윤성우의 뇌를 자극하는 윈도우즈 시스템 프로그래밍 도서를 읽고 정리한 글입니다

   https://product.kyobobook.co.kr/detail/S000001223395

 

뇌를 자극하는 윈도우즈 시스템 프로그래밍 | 윤성우 - 교보문고

뇌를 자극하는 윈도우즈 시스템 프로그래밍 |

product.kyobobook.co.kr

https://www.inflearn.com/course/%EC%8B%9C%EC%8A%A4%ED%85%9C-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D/dashboard

 

[지금 무료]뇌를 자극하는 윈도우즈 시스템 프로그래밍 강의 | 한빛미디어 - 인프런

한빛미디어 | , [사진] 1. 강좌 소개 한빛미디어(주) 에서 발간한 '뇌를 자극하는 윈도우즈 시스템 프로그래밍' 의 저자 윤성우 님이 직접 강의하는 온라인 강좌입니다. 이미 여러 저서와 온라인

www.inflearn.com

 

 

 

 

* 라이브러리(Library)

   여러 프로그램에서 자주 사용하는 함수와 데이터들을 실행이 가능한 바이너리 형태로 묶어놓은 파일을 의미

 

   정적 라이브러리와 동적 라이브러리가 있고

   이름의 마지막이 'd'로 끝나는 경우는 디버그 모드로 컴파일할 때 사용되는 라이브러리다

 

* 정적 라이브러리 만들기

   라이브러리가 실행파일 안에 포함

   라이브러리 빌드할 때는 솔루션 빌드, 단축키 Ctrl + Shift + B

#include <stdio.h>
#include <tchar.h>

#pragma comment(lib, "../brain/lib/StaticLib.lib")

#include "../StaticLib/StaticLib.h" 

int _tmain(int argc, TCHAR* argv[])
{
	int a = 10;
	int b = 20;

	_tprintf(_T("Before : %d %d \n"), a, b);

	swap(&a, &b);

	_tprintf(_T("After : %d %d \n"), a, b);

	return 0;
}

 

* 동적 라이브러리(DLL)

   둘 이상의 프로세스가 동일한 DLL을 공유할 경우, 메인 메모리에서 페이지 단위로 공유가 이뤄진다

   물리 메모리에 한 번 올라가면, 공유하는 프로세스가 모두 종료될 때까지 메모리에 존재한다

 

* DLL 파일을 찾는 순서는 표준 검색 경로 기준으로 찾는다

   (1) 실행파일이 존재하는 디렉터리

   (2) 프로세스의 현재 디렉터리

   (3) Windows 시스템 디렉터리

   (4) Windows 디렉터리

   (5) PATH 환경변수에 등록되어 있는 모든 디렉터리

 

https://velog.io/@cksgh1224/%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC-%EC%A0%95%EC%A0%81-%EB%8F%99%EC%A0%81

 

정적 라이브러리, 동적 라이브러리 (#1, Windows)

라이브러리는 프로그램을 개발하기 위해 사용되는 함수, 데이터, 자료형 등을 하나로 묶어 놓은 것 으로, 다른 프로그램들과 링크되기 위해 존재하며 코드 재사용 및 개발시간 단축을 위해 사용

velog.io