[Gpg2권 박민근] 1.4 dll 지옥과 존재하지 않는 os 함수들에 대한 방어 전략

Post on 28-Jun-2015

735 views 2 download

Transcript of [Gpg2권 박민근] 1.4 dll 지옥과 존재하지 않는 os 함수들에 대한 방어 전략

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) 으로 링크하는 테크닉