- 최종 바이너리는 .dll 파일이다.
- .c, .h, lib, .dll 네 가지 파일로 구성된다.
- .h는 컴파일 타임에 사용된다.
- .lib는 링크 타임에 사용된다.
- .dll은 런 타임에 사용된다.
- 런타임 라이브러리를 로딩하는 방식은 2가지로 나뉜다.
- 묵시적 방법
- 명시적 방법
- 런타임 라이브러리를 로딩하는 방식은 2가지로 나뉜다.
📌 Visual Studio에서 동적 라이브러리 개발
#include <stdio.h>
int add_in_dll(int a, int b)
{
puts("add_in_dll v1.0");
return a + b;
}


위 그림처럼 동적 라이브러리를 만들기 위해 구성 형식을 변경한다.
동적 라이브러리를 링킹 하는 주체는 운영체제인데, 프로세스를 로딩할 때 한다.
따라서 운영체제에게 알려주는 코드가 추가로 들어가야한다.
__declspec(dllexport) int add_in_dll(int a, int b);

위 명령어를 통해 add_in_dll을 외부에 공개함으로써 사용할 수 있게 한다.
사용해보기 위해 프로젝트 하나를 더 만들자


정적 라이브러리와 마찬가지로 링크 에러가 난다.
동적 라이브러리를 사용하려면 다음과 같이 코드를 입력한다.
__declspec(dllimport) int add_in_dll(int a, int b);

이렇게 입력하고 빌드하면 링크에러가 또 나는데, 경로를 지정안해줘서 그렇다.

위 그림처럼 pragma comment를 사용해 경로를 지정해주면 링크에러가 잡히고 동적 라이브러리를 사용할 수 있다.
'강의 정리 > 인프런' 카테고리의 다른 글
[인프런] Stack overflow ( 스택 오버플로우 ) (0) | 2025.03.10 |
---|---|
[인프런] 함수 호출 관계 (0) | 2025.03.10 |
[인프런] 정적, 동적 라이브러리 (0) | 2025.03.10 |
[인프런] 1bit와 2수 ( = 디지털 ) (0) | 2025.02.21 |
[인프런] 외워야 할 단위 체계와 숫자 (0) | 2025.02.21 |