ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [C/C++] 동적라이브러리(DLL) 만들기 & 사용하기 - (1)
    C, C++/잡기장 | Notebook 2016. 11. 15. 20:08

    서론


    동적라이브러리(DLL)를 Visual Studio 2013과 C/C++을 이용해 만들어보고, 사용까지 해본 내용을 정리한 것입니다.

     

    참고로, https://msdn.microsoft.com/en-us/library/ms235636.aspx 의 내용을 토대로 이해를 하였기에 참고하시기 바랍니다.

     

     

    본론


    ■ 동적라이브러리(DLL) 만들기

     

    1. 프로젝트 생성

     

    1-1. Visual Studio 2013 → New Project → Win32 Project → Project, Solution name : DLibrary → OK

     

     

    1-2. Application type : DLL → Additional options : Check the Empty project → Finish

     

     

    2. 소스 및 헤더 파일 생성

     

    2-1. Source Files : DLibrary.cpp, Header Files : DLibrary.h

     

     

    3. 헤더파일(DLibrary.h)에 함수 원형 작성

     

     

    4. 소스파일(DLibrary.cpp)에 함수 내용 작성

     

     

    5. Build 및 생성된 .dll 파일 확인

     

    5-1. Build 이후 생성된 dll경로 확인 (Build option : Debug, Win32 / ※개인이 원하는 옵션에 따라 빌드하시길 바람)

     

     

    5-2. 출력된 경로를 따라서 생성된 .dll 파일 확인 : C:\Users\NAMENODE\Documents\Visual Studio 2013\Projects\DLibrary\Debug

     

     

    ■ 동적라이브러리(DLL) 사용하기

     

    1. 프로젝트 생성

     

    1-1. DLibrary 프로젝트를 생성한 동일한 Solution에 DLL를 사용할 프로젝트 생성

     

    1-2. Solution Explorer → Soulution → Mouse's right button → Add → New Project

     

     

    1-3.  Win32 Project → Project name : UseDLibrary → OK

     

     

    1-4. Application type : Console application → Add common header files for : Check the ATL, MFC → Finish

     

     

    2. 소스, 헤더 파일 생성 확인 및 시작 프로젝트 설정

     

    2-1. 생성된 소스, 헤더 파일 확인

     

     

    2-2. UseDLibrary를 시작 프로젝트로 설정 : Solution Explorer → UseDLibary project → Mouse's right button → Set as StartUp Project

     

     

    3. 소스파일(UseDLibrary.cpp)에 내용 작성

     

    3-1. main 내부의 '// TODO: code your application's behavior here.'에 DLibrary.dll을 불러오고, 정의된 함수 사용

     

     

    3-2. 정의된 함수는 함수 포인터를 이용하므로, main문 밖에 함수포인터 정의

     

     

    4. Build → 실행

     

     

     

    결론


    동적라이브러리(DLL)을 만들어보고, 만들어진 dll 파일을 로드하여 정의된 함수를 사용하였습니다.

     

    추가적으로, 이 글에 작성된 내용은 동일한 솔루션내에 라이브러리 프로젝트를 추가해서 동적라이브러리를 사용하는 것을 다루었습니다.

     

    혹시나 시간이 된다면, 동일한 솔루션내에 라이브러리 프로젝트를 추가하지 않고, 외부 프로젝트에서 만든 dll을 사용하는 내용을 다루겠습니다.

     

    감사합니다.

    댓글

Designed by Tistory.