jText

<aside> 💡

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


Dynamic-Load-Library 동적로드라이브러리 [WINDOW].dll [LINUX].so 
: 

//-------------------------------------------------------------------------------
DLL적용예시 /*
- 동적라이브러리의 인터페이스에 특정 함수나 변수를 등록하고 싶다면 각 선언에 아래 키워드를 개별-지정
- 등록하지 않을 경우, 라이브러리내부에서는 정상적으로 실행되나 외부프로젝트에서는 조회불가 
- 프로젝트타입이 lib인 경우, 해당 키워드를 사용하더라도 무조건 정적라이브러리로 빌드됨 */

// [library_header.h]
#ifdef DLL_EXPORTS
#define DLL_API __declspec(dllexport) // 함수를 dll외부로 수출 (dll빌드)
#else
#define DLL_API __declspec(dllimport) // 함수를 dll에서 수입 (사용자)
#endif
static bool DLL_API Function();

// [library_source.cpp] // 정의문-사용으로 dllexport로 실행되도록 컴파일됨
#include "library_header.h"
#define DLL_EXPORTS 

bool DLL_API Function() {
}

// [Project.cpp] // 외부프로젝트는 #define DLL_EXPORTS 없는 헤더만 접근하므로 dllimport로 실행됨
#include "Project.h"
#include "library_header.h" 

void main() {
    Function();
}