Upload
mingeun-park
View
735
Download
2
Embed Size (px)
Citation preview
DLL 지옥과 존재하지 않는OS 함수들에 대한 방어 전략
GPG 2. Section 1. General Programming
DevRookie Study, 2011. 7. 9. 박민근
DLL 지옥DLL Hell
DLL 에 의존하는 것은 많은 문제를일으킬 수 있다
DLL 이 존재하는가 ?DLL 이 유효한 것인가 ?
DLL 버전은 맞는 것인가 ?
암묵적 링크 vs 명시적 링크
암묵적 링크
DLL 의 Lib 파일을 프로젝트 설정에 포함DLL 프로젝트를 솔류션에 포함
#pragma comment(lib “lib 이름” )
명시적 링크
LIB 파일을 사용하지 않는다 .LoadLibrary()
GetProcAddress()FreeLibrary()
DLL 이 없거나 잘못된 DLL 을찾아낼 수 있다 .
대신 코드가 좀더 복잡해 진다 .
DirectX 의 DLL 방어하기
존재하지 않는 OS 함수
게임 엔진 DLL 에서 응용
DX 의 버전 DLL 이 다른 경우(ex. DirectX9, DirectX11)
OpenGL & DirectX
게임 메인 실행 파일에서 , 자신의 DLL 을 명시적으로 로드하고 ,그 DLL 들은 해당 라이브러리를암묵적 (Lib) 으로 링크하는 테크닉