[DX11 입문 제4장] D3D11CreateDevice 함수 오류

GPG 시리즈 관련 질답, 논의 공간.

Moderator: 류광

비회원

D3D11CreateDevice 함수 오류

Post by 비회원 »

bool D3DApp::InitDirect3D()
{
UINT createDeviceFlags = 0;
#if (defined(DEBUG) || defined(_DEBUG))
createDeviceFlags |= D3D11_CREATE_DEVICE_DEBUG;
#endif
D3D_FEATURE_LEVEL featureLevel;
HRESULT hr = D3D11CreateDevice(
0,
md3dDriverType,
0,
createDeviceFlags,
0,
0,
D3D11_SDK_VERSION,
&md3dDevice,
&featureLevel,
&md3dImmediateContext);

오류 LNK2019 _D3D11CreateDevice@40 외부 기호(참조 위치: "protected: bool __thiscall D3DApp::InitDirect3D(void)" (?InitDirect3D@D3DApp@@IAE_NXZ) 함수)에서 확인하지 못했습니다.

오류 LNK1120 1개의 확인할 수 없는 외부 참조입니다.

windows 10 에서 vs2015로 컴파일하였습니다.

혹시 include 되지 않은 파일이 있는지 몇 번이고도 확인해 봤는데 빼먹은 게 있진 않더라고요.
http://gpgstudy.com/forum/viewtopic.php?t=25431 도 보았으나 어차피 vs2015 사용중이라 관계없는것 같고...

어제부터 구글링 해봤지만 못찾아서 질문해봅니다.
비회원

해결했습니다.

Post by 비회원 »

#pragma comment(lib, "d3d11.lib")

이 전처리문을 안넣어줘서 그랬군요.
요건 그냥 include랑 뭐가 다른 것인지?
명시적인 목적만 추가된 것인가요?
류광
Posts: 3805
Joined: 2001-07-25 09:00
Location: GPGstudy
Contact:

Re: 해결했습니다.

Post by 류광 »

비회원 wrote:#pragma comment(lib, "d3d11.lib")

이 전처리문을 안넣어줘서 그랬군요.
요건 그냥 include랑 뭐가 다른 것인지?
명시적인 목적만 추가된 것인가요?
링크 설정을 소스 코드 자체에 집어 넣는 건데요. 편하긴 하지만, VC++만 지원합니다. VC++를 사용하지 않는 다른 사람들도 사용할 코드라면 다음 형태가 그나마 낫습니다.

Code: Select all

#ifdef _MSC_VER 
#pragma comment(lib, "d3d11.lib") 
#endif
Post Reply