SlideShare a Scribd company logo
1 of 9
1.4. DLL 로 부터C++ 클래스 내보내기
1. 함수 Export 2. 클래스 Export 3. 클래스 맴버함수Export 4. 가상 클래스 맴버함수Export 차례
소스 코드 공개 없이 기능 로직을 다른 응용 프로그램에 제공하거나 클래스를 상속할 수 있게 해준다. 실행파일의 가상 메모리 영역에 Mapping 해서 사용되기 때문에, 둘 이상의 프로세스가 같은 DLL 을 공유하는 경우, 메인 메모리에서 공유가 이루어진다. 왜 DLL 인가요?
__declspec(dllexport) : DLL 로 Export 되서 배포할 때 함수에 사용 __declspec(dllimport) : DLL 을 사용하는 경우에 정의 1. 함수 Export
매크로 정의에 따라 DLL 사용방식 변경 Class 정의에 __declspec를 사용해준다. 응용 프로그램에서 DLL에 있는 클래스를 선언하거나 할당할 때 메모리 추적이 잘 못될 수 있으므로 주의해야 함. 2. 클래스 Export
Class 공개 보호를 위해 해당 클래스 맴버 함수에만 __declspec처리를 해준다. 클래스 에서는 public 이여도 export 처리 하지 않으면 DLL 외부에서 접근하지 못하므로 사용방식을 제한할 수 있다. 3. 클래스 맴버 함수 Export
LoadLibrary를 이용한 실행시점에서의 DLL 로딩시inline 함수를 확장시키지 않으면 에러 발생. 맴버 함수를 가상함수로 선언하면 인라인 함수 확장이 따로 필요없음. 응용 프로그램 상에서는 별다른 작업 없이 그대로 파생되는 클래스를 제작 할 수 있다. 4. 가상 클래스 맴버 함수 Export
게임 브리오DLL 라이브러 처리 방식 빌드할 때 네이밍에 버전, 컴파일러, 빌드방식을 표기 사용자가 원하는 DLL을 가져다 쓰게 정의. 5. 예제
마무리

More Related Content

Viewers also liked (19)

16 prosth[1]
16 prosth[1]16 prosth[1]
16 prosth[1]
 
Hindi jan lokpal
Hindi jan lokpalHindi jan lokpal
Hindi jan lokpal
 
Presentacion kt
Presentacion ktPresentacion kt
Presentacion kt
 
Детский сад 303
Детский сад 303Детский сад 303
Детский сад 303
 
Hattresan - En berättelse och 25 förslag
Hattresan - En berättelse och 25 förslagHattresan - En berättelse och 25 förslag
Hattresan - En berättelse och 25 förslag
 
WebMoney.lv Merchant Presentation
WebMoney.lv Merchant PresentationWebMoney.lv Merchant Presentation
WebMoney.lv Merchant Presentation
 
O que restou do rio comprido?
O que restou do rio comprido?O que restou do rio comprido?
O que restou do rio comprido?
 
Ticari amaçli sunum temelleri
Ticari amaçli sunum temelleriTicari amaçli sunum temelleri
Ticari amaçli sunum temelleri
 
Anh trang trinh chieu
Anh trang  trinh chieuAnh trang  trinh chieu
Anh trang trinh chieu
 
Los planetas
Los planetasLos planetas
Los planetas
 
Investimentos
InvestimentosInvestimentos
Investimentos
 
京都婚活In岡崎2
京都婚活In岡崎2京都婚活In岡崎2
京都婚活In岡崎2
 
ระบบปฏิบัติการ
ระบบปฏิบัติการระบบปฏิบัติการ
ระบบปฏิบัติการ
 
信息 Sunday Sermon 21/08/2011
信息 Sunday Sermon 21/08/2011信息 Sunday Sermon 21/08/2011
信息 Sunday Sermon 21/08/2011
 
Bacc – week 1 brinkman
Bacc – week 1   brinkmanBacc – week 1   brinkman
Bacc – week 1 brinkman
 
Verbs
VerbsVerbs
Verbs
 
Como escrever um bom parágrafo | Aula Sandra Portugal | 18/02/2014
Como escrever um bom parágrafo | Aula Sandra Portugal | 18/02/2014Como escrever um bom parágrafo | Aula Sandra Portugal | 18/02/2014
Como escrever um bom parágrafo | Aula Sandra Portugal | 18/02/2014
 
Activiteitenkalender september-december 2011
Activiteitenkalender september-december 2011Activiteitenkalender september-december 2011
Activiteitenkalender september-december 2011
 
Clá‡udio Manuel da Costa
Clá‡udio Manuel da CostaClá‡udio Manuel da Costa
Clá‡udio Manuel da Costa
 

Similar to Gpg2 dll로부터 c++_클래스_내보내기

Windosw via c 스터디20장.pptx
Windosw via c 스터디20장.pptxWindosw via c 스터디20장.pptx
Windosw via c 스터디20장.pptxHolyTak
 
19_DLL의 기본.pptx
19_DLL의 기본.pptx19_DLL의 기본.pptx
19_DLL의 기본.pptxssuser0c2478
 
Tcpl 12장 파생클래스
Tcpl 12장 파생클래스Tcpl 12장 파생클래스
Tcpl 12장 파생클래스재정 이
 
프로그래밍 언어 기초(델파이,C++)
프로그래밍 언어 기초(델파이,C++)프로그래밍 언어 기초(델파이,C++)
프로그래밍 언어 기초(델파이,C++)Devgear
 
Windows reversing study_basic_6
Windows reversing study_basic_6Windows reversing study_basic_6
Windows reversing study_basic_6Jinkyoung Kim
 
Dll 분석 방법
Dll 분석 방법Dll 분석 방법
Dll 분석 방법상윤 유
 
C# 뉴비를 위한 맛보기 2
C# 뉴비를 위한 맛보기 2C# 뉴비를 위한 맛보기 2
C# 뉴비를 위한 맛보기 2진상 문
 
Working Effectively With Legacy Code - xp2005
Working Effectively With Legacy Code - xp2005Working Effectively With Legacy Code - xp2005
Working Effectively With Legacy Code - xp2005Ryan Park
 
More Effective C++ 4주차
More Effective C++ 4주차More Effective C++ 4주차
More Effective C++ 4주차Injae Lee
 

Similar to Gpg2 dll로부터 c++_클래스_내보내기 (12)

Windosw via c 스터디20장.pptx
Windosw via c 스터디20장.pptxWindosw via c 스터디20장.pptx
Windosw via c 스터디20장.pptx
 
19_DLL의 기본.pptx
19_DLL의 기본.pptx19_DLL의 기본.pptx
19_DLL의 기본.pptx
 
Tcpl 12장 파생클래스
Tcpl 12장 파생클래스Tcpl 12장 파생클래스
Tcpl 12장 파생클래스
 
프로그래밍 언어 기초(델파이,C++)
프로그래밍 언어 기초(델파이,C++)프로그래밍 언어 기초(델파이,C++)
프로그래밍 언어 기초(델파이,C++)
 
Windows reversing study_basic_6
Windows reversing study_basic_6Windows reversing study_basic_6
Windows reversing study_basic_6
 
Dll 분석 방법
Dll 분석 방법Dll 분석 방법
Dll 분석 방법
 
Dll 하이재킹
Dll 하이재킹Dll 하이재킹
Dll 하이재킹
 
2015.07.01
2015.07.012015.07.01
2015.07.01
 
C# 뉴비를 위한 맛보기 2
C# 뉴비를 위한 맛보기 2C# 뉴비를 위한 맛보기 2
C# 뉴비를 위한 맛보기 2
 
Working Effectively With Legacy Code - xp2005
Working Effectively With Legacy Code - xp2005Working Effectively With Legacy Code - xp2005
Working Effectively With Legacy Code - xp2005
 
More Effective C++ 4주차
More Effective C++ 4주차More Effective C++ 4주차
More Effective C++ 4주차
 
Linq
LinqLinq
Linq
 

More from Young-jun Jeong

More from Young-jun Jeong (20)

Gpg2권]4 9 하늘상자
Gpg2권]4 9 하늘상자Gpg2권]4 9 하늘상자
Gpg2권]4 9 하늘상자
 
글꼴 렌더링 이야기
글꼴 렌더링 이야기글꼴 렌더링 이야기
글꼴 렌더링 이야기
 
점, 선, 면
점, 선, 면점, 선, 면
점, 선, 면
 
Kinect sdk사용하기
Kinect sdk사용하기Kinect sdk사용하기
Kinect sdk사용하기
 
Udk]static mesh & material
Udk]static mesh & materialUdk]static mesh & material
Udk]static mesh & material
 
Udk] sound (sound cue)
Udk] sound (sound cue)Udk] sound (sound cue)
Udk] sound (sound cue)
 
Udk] sound (sound cue)
Udk] sound (sound cue)Udk] sound (sound cue)
Udk] sound (sound cue)
 
삼각 함수
삼각 함수삼각 함수
삼각 함수
 
Gpg2 2 1_10_드롭인디버그메모리관리자
Gpg2 2 1_10_드롭인디버그메모리관리자Gpg2 2 1_10_드롭인디버그메모리관리자
Gpg2 2 1_10_드롭인디버그메모리관리자
 
[추천] 색인기법 김성현
[추천] 색인기법 김성현[추천] 색인기법 김성현
[추천] 색인기법 김성현
 
문자열 검색 (1)
문자열 검색 (1)문자열 검색 (1)
문자열 검색 (1)
 
[Gpg1권]skinning
[Gpg1권]skinning[Gpg1권]skinning
[Gpg1권]skinning
 
2010 독후감
2010 독후감2010 독후감
2010 독후감
 
Kinect pc
Kinect   pcKinect   pc
Kinect pc
 
Kinect pc
Kinect   pcKinect   pc
Kinect pc
 
정렬 알고리즘의 성능 분석
정렬 알고리즘의 성능 분석정렬 알고리즘의 성능 분석
정렬 알고리즘의 성능 분석
 
점근적 복잡도 분석
점근적 복잡도 분석점근적 복잡도 분석
점근적 복잡도 분석
 
알고리즘 기초사항
알고리즘 기초사항알고리즘 기초사항
알고리즘 기초사항
 
기초 알고리즘 스터디 소개
기초 알고리즘 스터디 소개기초 알고리즘 스터디 소개
기초 알고리즘 스터디 소개
 
Gpg1권] 4 5 3 d 충돌 검출
Gpg1권] 4 5 3 d 충돌 검출Gpg1권] 4 5 3 d 충돌 검출
Gpg1권] 4 5 3 d 충돌 검출
 

Gpg2 dll로부터 c++_클래스_내보내기

  • 1. 1.4. DLL 로 부터C++ 클래스 내보내기
  • 2. 1. 함수 Export 2. 클래스 Export 3. 클래스 맴버함수Export 4. 가상 클래스 맴버함수Export 차례
  • 3. 소스 코드 공개 없이 기능 로직을 다른 응용 프로그램에 제공하거나 클래스를 상속할 수 있게 해준다. 실행파일의 가상 메모리 영역에 Mapping 해서 사용되기 때문에, 둘 이상의 프로세스가 같은 DLL 을 공유하는 경우, 메인 메모리에서 공유가 이루어진다. 왜 DLL 인가요?
  • 4. __declspec(dllexport) : DLL 로 Export 되서 배포할 때 함수에 사용 __declspec(dllimport) : DLL 을 사용하는 경우에 정의 1. 함수 Export
  • 5. 매크로 정의에 따라 DLL 사용방식 변경 Class 정의에 __declspec를 사용해준다. 응용 프로그램에서 DLL에 있는 클래스를 선언하거나 할당할 때 메모리 추적이 잘 못될 수 있으므로 주의해야 함. 2. 클래스 Export
  • 6. Class 공개 보호를 위해 해당 클래스 맴버 함수에만 __declspec처리를 해준다. 클래스 에서는 public 이여도 export 처리 하지 않으면 DLL 외부에서 접근하지 못하므로 사용방식을 제한할 수 있다. 3. 클래스 맴버 함수 Export
  • 7. LoadLibrary를 이용한 실행시점에서의 DLL 로딩시inline 함수를 확장시키지 않으면 에러 발생. 맴버 함수를 가상함수로 선언하면 인라인 함수 확장이 따로 필요없음. 응용 프로그램 상에서는 별다른 작업 없이 그대로 파생되는 클래스를 제작 할 수 있다. 4. 가상 클래스 맴버 함수 Export
  • 8. 게임 브리오DLL 라이브러 처리 방식 빌드할 때 네이밍에 버전, 컴파일러, 빌드방식을 표기 사용자가 원하는 DLL을 가져다 쓰게 정의. 5. 예제