Windows/DLL,MFC

[DLL 만들기] 5. DLL을 load하여 동작 확인 해보기. (MFC 기준)

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

이제 DLL을 로드하도록 하겠습니다.

 

1. 다이얼로그 소스 코드에서 TestAppDlg.cpp 상단에 아래와 같은 소스를 넣습니다.

 

//TestAppDlg.cpp

//아래 추가
#include "../DLLTest/test.h"

#ifdef _X86_ 
#pragma comment(lib, "../Debug/DLLTest.lib")
#else
#pragma comment(lib, "../Debug/DLLTest.lib")
#endif

위와 같이 소스 코드를 넣어도 되고 TestApp 프로젝트 속성에다가 입력을 해도 무관합니다.

추가 라이브러리 디렉터리에 lib가 존재하는 경로 입력
lib 이름을 추가 종속성에 입력

 

2. 그리고 이전에 생성했던 버튼 이벤트 메소드에 다음과 같은 소스를 넣습니다.

 

//TestAppDlg.cpp

void CTestAppDlg::OnBnClickedBtnPrint()
{
	// TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
	TestPrint();  //실수다 ㅠㅠ 
}


void CTestAppDlg::OnBnClickedBtnAdd()
{
	// TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
	CString text;
	text.Format(_T("더한 결과 : %d"), Add(4, 10));
	m_ststic_test.SetWindowText(text);
	
	
}

참고로 TestPrint() 함수는 동작하지 않습니다 ^^;; 쓸대없이 내부에서 print를 하게 만들었네요... 

 

3. 그리고 컴파일을하여 실행합니다. 이후 더하기 결과를 클릭하면 다음과 같이 DLL 내부 함수를 호출하여 더하기 연산을 진행하였음을 확인 할 수 있습니다.

 

 

DLL을 생성하고 테스트 하는 방법은 이렇게 어렵지 않습니다.  

__declspec(dllexport) 로 정의한 함수만 외부에서 호출 할 수 있다는점만 아시면 손쉽게 생성이 가능합니다. 

 

감사합니다! 

반응형