출처 : https://msdn.microsoft.com/ko-kr/library/ms235636.aspx
MSDN 예제를 가져다 쓰고 내가 원하는 기능이 가능한지 테스트를 해볼것입니다.
아.. DLL 어렵도다. 일단 만들면서 익히도록 합시다.
뭐 일단 프로젝트 부터 쭈루룩
자 이렇게 만들고 본격적으로 코딩을 해보아요...
위의 출처 MSDN에 나온 설명을 토대로 이런 저런 내가 필요한 작업들을 테스트 해보아요
헤더 부터 작성을 해봅시다.
MathFuncsDll.h
1.dllimport / dllexport
여기서 보면 dllimport / dllexport 가 있는데.. 멀까 ?
내가 알기로는 '내보내기' 인데.. 다음에 정리 하는걸로
바쁘니까..
2. namespace
이건 cpp 공부한 사람이라면 .. 기본이겠죠 ?
음.. 나중에 c#에서 c++ dll 쓰는것도 정리 할건데
그때 namespace가 필요..........했었던것 같은 느낌이
3. Class
함수를 여기다가 정의 하면 됩니다.
이제 cpp 파일을 작성해 보아요.
MathFuncsDll.cpp
1. 헤더 추가
위에 작성한 헤더파일을 꼭 추가해주어야 합니다.
2. 클래스::함수()
클래스내 포함된 함수를 정의하는 겁니다.
요래 하고서 빌드를 하면
.dll, .lib 파일이 생성이 되는 것을 확인할 수 있습니다.
더 여러개 파일이 생성되지만 이 2개와 아까 작성한 헤더파일만 필요합니다.
DLL 사용하기
위에서 만든 dll을 사용해 보자
프로젝트를 만들어서 테스트를 해봅시다.
dllTest.cpp
실행이 안될 것이다. dll을 추가해주어야 하기 때문이지
위의 파일들을 테스트 하기위해 만든 프로젝트에 복사해서 넣어주자.
복사를 해주고 한가지 더 해주어야 한다.
.lib 파일 을 등록해 주어야 하는데
코드에서 입력해도 되지만 뭐 이 방법도 나름 많이 쓰므로 사용해 보자.
자 이제 실행을 하면... 잘 된다.
'programing > C++' 카테고리의 다른 글
[Error] C2679 이항 '<<': 오른쪽 피연산자로 'std::string' 형식을 사용하는 연산자가 없거나 허용되는 변환이 없습니다. (1) | 2018.06.28 |
---|---|
[C++] 시간 측정 - clock() (0) | 2017.06.12 |
[C++] 배열복사 std::copy() (0) | 2017.01.19 |
[STL] vector 복사 (0) | 2016.10.31 |