[Win32API] 라이브러리 구축하기 #2

2008/07/31 - [프로그래밍/Win32API/MFC] - [Win32API] 라이브러리 구축하기 #1

이전 포스팅에 이어서 설명합니다.

3. 정적링크 라이브러리 사용하기

역시 프로젝트를 하나 생성합니다.
그냥 빈 프로젝트를 만들어서 cpp 파일을 하나 생성해서 소스를 작성하면 됩니다.
저는 BlackOx.cpp 로 했습니다.

정적링크 라이브러리를 사용하기 위해서는 헤더파일(h)과 lib 파일이 필요합니다.
헤더파일에 함수가 선언되어 있고, lib 에 함수가 정의되어 있지요.

그래서 우리는 2번 과정에서 만든
BlackOx.h 파일과 프로젝트 빌드시에 생성된 lib 파일을 현재 프로젝트 폴더로 복사합니다.

사용자 삽입 이미지

복사한 모습입니다.
저는 2번 과정의 프로젝트명을 2_StaticLinkedLibrary 라고 했습니다.
그래서 2_StaticLinkedLibrary.lib 파일로 생성되었죠.

복사한 BlackOx.h 파일을 솔루션 탐색기에서 프로젝트의 기존 항목으로 추가시켜 줍니다.

이제 lib 파일을 현재 프로젝트에서 참조하여 사용하기 위해서는
추가 종속성을 걸어줘야 합니다. 이것은 두가지 방법이 있는데...

- 프로젝트 속성으로 들어갑니다.

사용자 삽입 이미지

[구성속성] - [링커] - [입력] 으로 들어가서 추가 종속성에 해당 lib 파일을 걸어줍니다.
이렇게 GUI 에서 하는 것 말고 코드에서 해결하는 방법도 있습니다.

- 전처리기 매크로를 사용합니다.

사용자 삽입 이미지

우리가 가져온 BlackOx.h 헤더파일 상단에

#pragma comment(lib, "2_StaticLinkedLibrary.lib")

이렇게 한 줄 넣어주면 종속성이 걸리면서 lib 파일을 참조할 수 있게 됩니다.

이제, 정적링크 라이브러리를 사용하기위한 모든 준비가 끝났습니다.
BlackOx.cpp 에 아래 코드를 작성합니다.

결과는... !

사용자 삽입 이미지

성공했습니다. 정적링크 라이브러리를 구축하고 사용하는 방법을 적어봤습니다. 생각보다 쉽죠 ~

참고로, 여기서 우리가 lib 파일을 참조할 때 복사해서 가져오는 식으로 했는데...
lib 파일이 있는 폴더를 참조하도록 하는 방법도 있습니다.

사용자 삽입 이미지

프로젝트 속성으로 들어가서
[구성 속성] - [C/C++] 으로 들어가서 추가 포함 디렉토리에 lib 파일이 있는 폴더를 걸어주면,
따로 lib 파일을 우리가 작업중인 프로젝트 폴더로 복사하는 일 없이 바로 참조하여 사용할 수 있습니다.

#pragma comment(lib, "2_StaticLinkedLibrary.lib")

물론 이렇게 종속성은 걸어줘야 하겠죠? ^^

이 방법외에도 프로젝트 종속성을 걸어주거나, 프로젝트 참조를 걸어주거나...
방법은 많은 것 같습니다.

다음 포스팅부터는 동적링크 라이브러리 DLL 을 구축하고 사용하는 방법을 설명합니다.

미쉘린 프로그래밍/Win32API/MFC