Windows/DLL,MFC

[DLL 만들기] 3. 간단한 DLL 생성하기.

별빛의온기 2022. 10. 21. 10:13
반응형

진행하기전에.. 

 

사실 DLL 만드는법에 대한 설명은 아래 MS 사이트 링크에 자세하게 설명이 되어 있습니다.

https://learn.microsoft.com/ko-kr/cpp/build/dlls-in-visual-cpp?view=msvc-170 

 

Visual Studio에서 C/C++ DLL 만들기

Visual Studio에서 C++로 DLL을 만들고 사용하는 이유와 방법의 개요입니다.

learn.microsoft.com

 

그래서 위 링크를 보고 하셔도 크게 지장이 없습니다. 

 

여튼간에.. 간단한 DLL 프로그램을 만들어 보도록 하겠습니다.

 

1. 소스파일과 헤더파일을 생성합니다. 

 

test.cpp, test.h 파일 생성

 

 

2. 그리고 test.cpp와 test.h에 다음과 같은 코드를 추가합니다.

//test.h

#pragma once

#ifdef TEST_LIB_EXPORTS
#define TEST_API __declspec(dllexport)
#else
#define TEST_API __declspec(dllimport)
#endif

TEST_API void __stdcall TestPrint();  //단순 출력 함수
TEST_API int __stdcall Add(int x, int y);  //정수 더하기 함수
//test.cpp

#include "pch.h"
#include <stdio.h>
#define TEST_LIB_EXPORTS
#include "test.h"

TEST_API void __stdcall TestPrint()
{
	printf("Test!!");
}
TEST_API int __stdcall Add(int x, int y)
{
	return x + y;
}

 

이때 #define TEST_LIB_EXPORTS를 소스코드에 쓰기 번거롭다 생각이 든다면 프로젝트 속성에서 전처리로 정의를 해도 됩니다.

 

이런식으로 설정해도 무관!

 

 

3. 컴파일을 해보면 아래와 같이 창이 뜹니다.

 

4. 위 창은 DLL이 응용프로그램이 아니기 때문에 뜨는 창입니다. 정상적으로 출력이 되었다는것을 프로젝트 폴더의 출력 폴더에서 확인 할 수 있습니다. 출력 폴더는 프로젝트 속성의 출력 디렉터리를 어떻게 설정했느냐에 따라 다르다는점 참고 바랍니다.

출력 디렉터리가 어떻게 설정 되었느냐에 따라 출력 파일의 위치가 달라짐

 

출력 디렉터리에 dll이 생성되었음을 확인.

 

5. DLL을 생성하였으면 이 DLL을 사용하는 방법에 대해서도 알아야겠죠? 다음 회차에서 부터 DLL을 사용하고 테스트 하기위한 방법에 대해 진행하도록 하겠습니다.

반응형