티스토리 뷰

[원글 - 2013년 이글루스]


최신 Microsft 플랫폼 SDK를 설치해보면 ( v7.0 확인 )

내부에 DirectX가 기본적으로 들어있다

Direct Sound나 Direct Input을 사용하다 보면

가끔 COM 객체 할당에 아래와 같은 링크 에러를 볼 수 있는데

Error	3	error LNK2001: _IID_IDirectSoundNotify 외부 기호를 확인할 수 없습니다.
Error	4	error LNK2001: _IID_IDirectSoundBuffer8 외부 기호를 확인할 수 없습니다.

기본적으로 DirectX SDK가 깔려있는 상황에서는

dxguid.lib 를 링크 시킴으로서 해결되던 문제다

하지만 Microsoft 플랫폼 SDK에는 별도로 dxguid.lib가 존재하지 않는다

이럴 때는 다음과 같이 해주면 된다

사용하고자 하는 DirectX header 파일을 include 하기전에

InitGuid.h 파일을 include 한다

대게의 경우 이 단계에서 문제가 해결된다

경우에 따라서는 InitGuid.h 와 DirectX header 파일 Include 문 사이에

사용하고자 하는 DirectX COM의 Version을 Define 해줘야 할 수도 있다

====================================================================================

예>

일반적인 경우

#include <InitGuid.h>
#include <dinput.h>
#include <dsound.h>

와 같이 작성해주면 된다

간혹

#include <InitGuid.h>

#define DIRECTINPUT_VERSION 0x0800
#define DIRECTSOUND_VERSION 0x0800

#include <dinput.h>
#include <dsound.h>

와 같이 처리해 줘야 하는 경우도 있다

댓글
최근에 올라온 글
Total
Today
Yesterday
최근에 달린 댓글
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31