이번 포스팅은 저희가 필요로 하는 클래스나, 함수등을 직접 라이브러리로 만들어서 적용시켜보겠습니다.
(2)번 포스팅에 이어서 프로젝트는 동일합니다.
/////////////// 사용자 정의 라이브러리 생성 및 사용법 ///////////////
1. CreateLib 솔루션 오른쪽 클릭 -> 새프로젝트 추가 -> Win32 콘솔 응용 프로그램을 만듭니다.
프로젝트 이름은 Userlib 로 만들겠습니다.
설정은 DLL, 내보내기 기호 체크 해주세요.
Userlib 프로젝트에서 클래스를 추가 해줍니다. 클래스는 CCalc 라는 명의 클래스를 만들도록 하겠습니다.
2. 함수를 하나 만드는데 함수는 간단 두개의 int형 매개변수를 받아서 그 차의 값을 리턴해주는 함수를 생성하겠습니다.
3. view에서 Userlib 프로젝트의 CCalc.h 헤더 파일을 include 해주고 생성자에서
CCalc 클래스에있는 sub 함수를 호출하고 있지만 참조할수 없다는 링크에러가 나옵니다.
4. 동적,정적 라이브러리를 할때와 마찬가지로 CreatLib 프로젝트 속성으로 들어가신후 공용 속성에서 새 참조 추가를 Userlib 프로젝트로 설정해 줍니다.
Userlib.h 헤더 파일로 가보면
#ifdef USERLIB_EXPORTS
#define USERLIB_API __declspec(dllexport)
#else
#define USERLIB_API __declspec(dllimport)
#endif
이러한 코드가 있습니다. 이 코드를 복사 한후 밑의 사진처럼 CCalc.h 헤더 파일에 붙여 주시고
클래스 이름 앞에 USERLIB_API를 붙여 줍니다.
(win32 콘솔 에서는 이 코드가 바로 외부에서 사용 가능하게 만들어주는 기능을 한다고 합니다.)
그럼 링크 에러가 사라집니다.
5. 똑같이 Debug 폴더에 Userlib.lib와, User.dll 이라는 우리가 만든 프로젝트 이름의 라이브러리가 생성 됩니다.
늘 그랬듯이. CreateLib 폴더 안에 Userlib.lib를 붙여 넣어 주시고
비쥬얼 스튜디오로 돌아와서 CreateLib 프로젝트 오른쪽 클릭 -> 속성 -> 링커 -> 입력 에서
추가종속성 편집을 실행하신후 추가한 Userlib.lib 이름을 적어주시고 적용시켜 주시면
4번에서 새참조 추가를 했던 Userlib 프로젝트를 지우고 컴파일 해보셔도 이제 잘 되는 것을 확인할수 있습니다.
여기까지 사용자가 직접 정의해서 라이브러리를 생성 하고 적용 시키는 방법 이였습니다.
(다른 여러 방법이 더 있겠지만 저도 아직 잘 모르는 부분이 많다는점... )
'C++' 카테고리의 다른 글
빅오표기법 정리. (0) | 2015.01.07 |
---|---|
C++ 스타일의 캐스트 (0) | 2014.12.31 |
라이브러리(dll(동적), lib(정적)) 생성 및 사용법 (2) (1) | 2014.08.22 |
라이브러리(dll(동적), lib(정적)) 생성 및 사용법 (1) (0) | 2014.08.22 |
라이브러리(Library) 란? (0) | 2014.08.22 |