[NHN_NEXT/윈도우 게암 프로그래밍] 3. 라이브러리
description
Transcript of [NHN_NEXT/윈도우 게암 프로그래밍] 3. 라이브러리
![Page 1: [NHN_NEXT/윈도우 게암 프로그래밍] 3. 라이브러리](https://reader035.fdocuments.net/reader035/viewer/2022081413/5479327e5906b567048b466a/html5/thumbnails/1.jpg)
3. 라이브러리윈도우 게임 프로그래밍
박민근
![Page 2: [NHN_NEXT/윈도우 게암 프로그래밍] 3. 라이브러리](https://reader035.fdocuments.net/reader035/viewer/2022081413/5479327e5906b567048b466a/html5/thumbnails/2.jpg)
라이브러리
재사용 가능하도록 만들어 놓은 코드 모듈 .
정적 라이브러리 (Static Library) 와
동적 라이브러리 (Dynamic Library) 가
있다 . Ex. Fmod, DirectX, 여러 라이브러리형 게임 엔진등 ..
![Page 3: [NHN_NEXT/윈도우 게암 프로그래밍] 3. 라이브러리](https://reader035.fdocuments.net/reader035/viewer/2022081413/5479327e5906b567048b466a/html5/thumbnails/3.jpg)
Static Library
실행파일(exe)
StaticLibrary
(lib)
실행파일2(exe)
StaticLibrary
(lib)
실행파일3(exe)
StaticLibrary
(lib)
실행파일4(exe)
StaticLibrary
(lib)
실행파일5(exe)
StaticLibrary
(lib)
라이브러리가 exe 파일안에 포함된다 . (Lib)
동일한 라이브러리를 쓰는 프로그램들이 동시에 실행되면 메모리를 많이 차지 한다
![Page 4: [NHN_NEXT/윈도우 게암 프로그래밍] 3. 라이브러리](https://reader035.fdocuments.net/reader035/viewer/2022081413/5479327e5906b567048b466a/html5/thumbnails/4.jpg)
Dynamic Library
실행파일(exe)
DynamicLibrary(DLL)
라이브러리가 exe 파일밖에 존재 한다 . (DLL)
동일한 라이브러리를 쓰는 프로그램들이 하나의 DLL 을 공유 한다 .
실행파일2(exe)
실행파일3(exe)
실행파일4(exe)
실행파일5(exe)
![Page 5: [NHN_NEXT/윈도우 게암 프로그래밍] 3. 라이브러리](https://reader035.fdocuments.net/reader035/viewer/2022081413/5479327e5906b567048b466a/html5/thumbnails/5.jpg)
http://stupid86.tistory.com/entry/%EC%A0%95%EC%A0%81-%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC%EC%99%80-%EB%8F%99%EC%A0%81-%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC%EC%9D%98-%EB%B9%84%EA%B5%90lib%EC%99%80-dll%EC%9D%98-%EC%9E%A5%EB%8B%A8%EC%A0%90
정적 라이브러리 , 동적 라이브러리 비교
![Page 6: [NHN_NEXT/윈도우 게암 프로그래밍] 3. 라이브러리](https://reader035.fdocuments.net/reader035/viewer/2022081413/5479327e5906b567048b466a/html5/thumbnails/6.jpg)
Static Library 제작하기
![Page 7: [NHN_NEXT/윈도우 게암 프로그래밍] 3. 라이브러리](https://reader035.fdocuments.net/reader035/viewer/2022081413/5479327e5906b567048b466a/html5/thumbnails/7.jpg)
Static Library 제작
![Page 8: [NHN_NEXT/윈도우 게암 프로그래밍] 3. 라이브러리](https://reader035.fdocuments.net/reader035/viewer/2022081413/5479327e5906b567048b466a/html5/thumbnails/8.jpg)
Static Library 제작
![Page 9: [NHN_NEXT/윈도우 게암 프로그래밍] 3. 라이브러리](https://reader035.fdocuments.net/reader035/viewer/2022081413/5479327e5906b567048b466a/html5/thumbnails/9.jpg)
Static Library 제작
Static Library 제작 ( 빌드 ) 완료 !!
![Page 10: [NHN_NEXT/윈도우 게암 프로그래밍] 3. 라이브러리](https://reader035.fdocuments.net/reader035/viewer/2022081413/5479327e5906b567048b466a/html5/thumbnails/10.jpg)
Static Library 사용 하기
헤더 파일 있는 폴더 추가하기
![Page 11: [NHN_NEXT/윈도우 게암 프로그래밍] 3. 라이브러리](https://reader035.fdocuments.net/reader035/viewer/2022081413/5479327e5906b567048b466a/html5/thumbnails/11.jpg)
Static Library 사용 하기
어디서 많이 본 에러 발생 !!함수를 못 찾는다
코드가 없다
Lib 가 없다 !
![Page 12: [NHN_NEXT/윈도우 게암 프로그래밍] 3. 라이브러리](https://reader035.fdocuments.net/reader035/viewer/2022081413/5479327e5906b567048b466a/html5/thumbnails/12.jpg)
Static Library 포함 시키기
![Page 13: [NHN_NEXT/윈도우 게암 프로그래밍] 3. 라이브러리](https://reader035.fdocuments.net/reader035/viewer/2022081413/5479327e5906b567048b466a/html5/thumbnails/13.jpg)
프로젝트 종속성 = 빌드 순서
라이브러리부터 빌드 한다 .
![Page 14: [NHN_NEXT/윈도우 게암 프로그래밍] 3. 라이브러리](https://reader035.fdocuments.net/reader035/viewer/2022081413/5479327e5906b567048b466a/html5/thumbnails/14.jpg)
Dynamic Library 제작하기
![Page 15: [NHN_NEXT/윈도우 게암 프로그래밍] 3. 라이브러리](https://reader035.fdocuments.net/reader035/viewer/2022081413/5479327e5906b567048b466a/html5/thumbnails/15.jpg)
DLL 프로젝트 생성
꼭 체크 할것
![Page 16: [NHN_NEXT/윈도우 게암 프로그래밍] 3. 라이브러리](https://reader035.fdocuments.net/reader035/viewer/2022081413/5479327e5906b567048b466a/html5/thumbnails/16.jpg)
친절한 DLL 샘플이 포함된다
자동으로 정의되어 있음
![Page 17: [NHN_NEXT/윈도우 게암 프로그래밍] 3. 라이브러리](https://reader035.fdocuments.net/reader035/viewer/2022081413/5479327e5906b567048b466a/html5/thumbnails/17.jpg)
DLL 클래스 제작하기
![Page 18: [NHN_NEXT/윈도우 게암 프로그래밍] 3. 라이브러리](https://reader035.fdocuments.net/reader035/viewer/2022081413/5479327e5906b567048b466a/html5/thumbnails/18.jpg)
DLL 제작 ( 빌드 ) 하기
![Page 19: [NHN_NEXT/윈도우 게암 프로그래밍] 3. 라이브러리](https://reader035.fdocuments.net/reader035/viewer/2022081413/5479327e5906b567048b466a/html5/thumbnails/19.jpg)
DLL 사용 하기
헤더 파일 있는 폴더 추가하기
Lib 추가 하기
![Page 20: [NHN_NEXT/윈도우 게암 프로그래밍] 3. 라이브러리](https://reader035.fdocuments.net/reader035/viewer/2022081413/5479327e5906b567048b466a/html5/thumbnails/20.jpg)
DLL 사용 하기
![Page 21: [NHN_NEXT/윈도우 게암 프로그래밍] 3. 라이브러리](https://reader035.fdocuments.net/reader035/viewer/2022081413/5479327e5906b567048b466a/html5/thumbnails/21.jpg)
DLL 을 삭제 하면 ?
어디서 많이 보던 에러가 !!
![Page 22: [NHN_NEXT/윈도우 게암 프로그래밍] 3. 라이브러리](https://reader035.fdocuments.net/reader035/viewer/2022081413/5479327e5906b567048b466a/html5/thumbnails/22.jpg)
Lib 대신 , 프로젝트 참조로 추가하기
DLL 의 lib 를 제거한다
당근 에러 발생 !!
![Page 23: [NHN_NEXT/윈도우 게암 프로그래밍] 3. 라이브러리](https://reader035.fdocuments.net/reader035/viewer/2022081413/5479327e5906b567048b466a/html5/thumbnails/23.jpg)
Lib 대신 , 프로젝트 참조로 추가하기
빌드 성공 !!
![Page 24: [NHN_NEXT/윈도우 게암 프로그래밍] 3. 라이브러리](https://reader035.fdocuments.net/reader035/viewer/2022081413/5479327e5906b567048b466a/html5/thumbnails/24.jpg)
도전 과제
• 제작한 DirectX 샘플을 라이브러리화 시켜보자 .
• 외부 프로젝트에서는 아래처럼 호출하기만 해도 되도록
읽을 거리
게임 프로그래밍의 정석 p.535 ~ 545
“ 팁 : 라이브러리를 게임에서 분리한다”