04-27 19:32
Notice
Recent Posts
Recent Comments
관리 메뉴

Scientific Computing & Data Science

[C/C++] DLL 작성 및 사용하기 본문

Programming/C&C++

[C/C++] DLL 작성 및 사용하기

cinema4dr12 2016. 5. 14. 16:40

Visual Studio에서 DLL(Dynamic Link Library)를 작성하고 이를 활용하는 방법에 대하여 알아보기로 하겠습니다.


이 글은 MSDN의 동적 라이브러리 만들기 및 사용(C++) 을 좀 더 자세히 풀어쓴 것임을 밝혀 둡니다.


개발환경은 다음과 같습니다:

  • Windows 7 Pro x64

  • Visual Studio 2015 Community Edition


DLL 프로젝트 생성하기

메뉴에서 파일 > 새로 만들기 > 프로젝트를 선택합니다.


새 프로젝트 창이 열리면, 왼쪽 Pane에서 템플릿 > Visual C++ > Win32를 선택하고, Win32 콘솔 응용 프로그램을 선택합니다.


위치(L)을 통해 적당한 프로젝트 생성 경로를 설정하고, 솔루션 이름(M)은 DynamicLibrary, 이름(N)은 MathFuncsDll로 합니다.



아래 대화상자가 나오면 [다음 >] 버튼을 클릭합니다.



아래 대화상자가 나오면 응용 프로그램 종류: 에서 DLL(D)를 선택하고 [마침] 버튼을 클릭합니다.


DLL 프로젝트 속성 설정

빌드 플랫폼(Platform)을 x64로, 구성(Configuration)을 Release로 선택합니다.



왼쪽 솔루션 탐색기 Pane에서 프로젝트 이름(MathFuncsDll)을 마우스 우클릭하여 속성(R)을 선택합니다.



다음과 같이 프로젝트 속성 대화상자가 열립니다.



구성을 모든 구성 으로, 플랫폼(P)를 모든 플랫폼 으로 선택합니다.



구성 속성 > 일반에서

  • 출력 디렉터리로  $(SolutionDir)\{out}\$(Platform)\$(Configuration)\ 를 입력하고,

  • 중간 디렉터리로 $(SolutionDir)\{in}\$(Platform)\$(Configuration)\ 를 입력합니다.

[확인] 버튼을 클릭하여 프로젝트 속성 페이지를 닫습니다.


Header 파일 작성

헤더 파일 폴더에 MathFuncsDll.h 파일을 추가하고, 다음과 같이 코드를 작성합니다.


CODE: MathFuncsDll.h


MyFuncsDll.cpp 파일에 다음과 같이 코드를 작성합니다.


CODE: MyFuncsDll.cpp


솔루션 빌드를 하고,

$(SolutionDir)\{out}\$(Platform)\$(Configuration) 경로에 MathFuncsDll.dll과 MathFuncsDll.lib 파일이 생성되었는지 확인합니다.



새로운 프로젝트 추가하기

이제 방금 빌드한 DLL 파일을 활용하는 프로젝트를 생성하도록 합니다.


솔루션 이름을 우클릭하고 추가(D) > 새 프로젝트(N)를 선택하면 다음 대화상자가 열립니다.



이전 프로젝트와 동일하게 Win32 콘솔 응용 프로그램을 선택하고,

프로젝트 이름(N)에 MyExecRefsDll을 입력하고 [확인] 버튼을 클릭합니다.



응용 프로그램 설정에서 추가 옵션 : 의 빈 프로젝트(E)를 선택 해제합니다.



프로젝트 속성 설정하기

앞의 DLL 프로젝트와 같이, 빌드 플랫폼(Platform)을 x64로, 구성(Configuration)을 Release로 선택합니다.



왼쪽 솔루션 탐색기 Pane에서 프로젝트 이름(MyExecRefsDll)을 마우스 우클릭하여 속성(R)을 선택합니다.



구성을 모든 구성 으로, 플랫폼(P)를 모든 플랫폼 으로 선택합니다.



구성 속성 > 일반에서

  • 출력 디렉터리로  $(SolutionDir)\{out}\$(Platform)\$(Configuration)\ 를 입력하고,

  • 중간 디렉터리로 $(SolutionDir)\{in}\$(Platform)\$(Configuration)\ 를 입력합니다.


C/C++ > 일반에서 추가 포함 디렉터리에 $(SolutionDir)\MathFuncsDll 을 입력합니다.



링커 > 일반에서 추가 라이브러리 디렉터리에 $(SolutionDir)\{out}\$(Platform)\$(Configuration)을 입력합니다.



링커 > 입력추가 종속성에 MathFuncsDll.lib을 추가합니다.



MyExecRefsDll.cpp 코드 작성하기

MyExecRefsDll.cpp 파일을 열어 다음과 같이 코드를 작성합니다.


CODE: MyExecRefsDll.cpp

시작 프로젝트 설정하기

아래와 같이 프로젝트 MyExecRefsDll을 우클릭하고 시작 프로젝트로 설정(A)를 선택하여 이 프로젝트를 시작 프로젝트로 설정합니다.



프로젝트 종속성 및 빌드 순서 정하기

메뉴 > 프로젝트(P) > 프로젝트 빌드 순서(I)를 선택하면 다음 대화상자가 열립니다.



프로젝트 종속성 대화상자의 종속성 탭에 프로젝트(R)MyExecRefsDll로 선택하고 MathFuncsDll을 체크합니다.



프로젝트 종속성 대화상자의 빌드순서 탭에서 프로젝트 빌드 순서(R) MyExecRefsDll > MyExecRefsDll로 선택합니다.



솔루션 빌드 및 실행하기

모든 준비가 끝났습니다. 이제 솔루션을 빌드하고 실행을 해보도록 하겠습니다.



위와 같은 실행 결과를 얻으면 성공적으로 모든 과정을 마쳤습니다.

Comments