728x90

이번 포스팅은 동적 라이브러리를 생성하고 적용시켜보겠습니다.

(1)번 포스팅에 이어서 프로젝트는 동일합니다.

 

/////////////// 2. 동적 라이브러리 생성 및 사용법 ///////////////

 

1. CreateLib 솔루션 오른쪽 클릭 -> 새프로젝트 추가 -> MFC DLL 만듭니다.

프로젝트 이름은 mfcdll 로 만들겠습니다.

 

설정은 MFC 확장 DLL에 체크 해주세요.

 

 

2. 테스트를 위해서 리소스 뷰에서 mfcdll 프로젝트에 다이얼로그를 하나 생성 하겠습니다.

ID 값은 IDD_TEST_DLL로 설정했습니다.

 

 

다이얼로그를 더블클릭 하시면 클래스 추가 마법사 창이 뜹니다.

이름은 CTestDialog 로 하고 클래스를 하나 생성하겠습니다.

 

추가 하신후 IDD_TEST_DLL 이 정의되지 않았습니다. 와 같은 오류가 뜨면

resource.h 헤더를 include 해주시면 해결 됩니다.

 

 

3. view 화면으로 돌아와서 mfcdll 프로젝트에 있는 TestDialog.h 헤더 파일을 include 해주고

생성자 에서 앞서 만들엇던 다이얼로그 창을 띄우는 코드를 넣고 컴파일 해보면

정적 라이브러리 생성때와 같이 링크 에러가 발생합니다.

 

 

4. 정적 라이브러리 때와 마찬가지로 CreatLib 프로젝트 속성으로 들어가신후 공용 속성에서 새 참조 추가를 mfcdll 프로젝트로 설정해 줍니다.

 

 

 

그리고 TestDialog.h 헤더 파일에서 class 이름 앞에 AFX_EXT_CLASS 라는 키워드를 붙여줍니다.

이 키워드는 외부에서도 이 클래스에 접근 가능하게하여 사용할수 있게 해준다는 키워드입니다.

(mfc일경우에 한해서 사용하는 키워드)

 

다 하셨으면 이제 문제없이 컴파일이 잘 되는것을 확인 하실수 있습니다.

 

 

5. 정적때와 마찬가지로 여기까지 잘 따라하시면서 컴파일 하셧다면 프로젝트 명과 동일한 mfcdll.dll 와 mfcdll.lib 2개가 생성된것을 보실수 있습니다.

 

동적 라이브러리 같은 경우에는 dll와, lib 2개가 생성됩니다.

 

 

6. CreateLib 폴더에 mfcdll.dll와, mfcdll.lib 라이브러리를 추가해 줍니다.

 

 

비쥬얼 스튜디오로 돌아와서 CreateLib 프로젝트 오른쪽 클릭 -> 속성 -> 링커 -> 입력 에서

추가종속성 편집을 실행하신후 추가한 mfcdll.lib 이름을 적어주시고 적용시켜 주시면

새참조 추가를 했던 mfcdll 프로젝트를 지우고 컴파일 해보셔도 이제 잘 되는 것을 확인할수 있습니다.

 

 

추가는 lib만 하는데 dll은 왜 같이 넣는지 처음에 제가 궁금했었고 보시는분들도 궁금하실수 있는데

dll은 추가하는것이 아니고 dll을 같이 넣지 않으면 원래 이 라이브러리는 dll을 기준으로 만들어 졌기 때문에

컴파일이나, 빌드 하는데 있어선 문제가 없지만 프로그램 실행을 하는데 있어서 dll이 같이 없다면 해당하는 dll이 없어서 실행을 못한다 라는 오류가 뜨게 된다고 합니다.

 

아무튼 여기까지 동적 라이브러리 생성 하고 적용하여서 실행하면 우리가 만든 다이얼로그가 뜨는것을 알수 있습니다. 라이브러리가 재대로 추가되서 사용 되고 있다는 뜻입니다!

 

다음엔 우리가 직접 만들거나, 혹은 필요한 클래스나 함수등등을 라이브러로 만들어서 사용하는 방법을 포스팅 해보겠습니다.

728x90
Posted by 정망스
,


맨 위로
홈으로 ▲위로 ▼아래로 ♥댓글쓰기 새로고침