'Dev/Info/Direct3D'에 해당되는 글 2건

  1. [Direct3D] Matrices 예제 LINK2019 Error
  2. [Direct3D] DivecCreate LNK2019, LNK1120, C2440, C2664 Error 해결법

음...=_=;;;


해골책... 예제는 따라쳐도 LINK Error....

해결법은 책에 안나오고.... 하라는말도 없고....


error LNK2019: _Direct3DCreate9@4 외부 기호(참조 위치: "long __cdecl InitD3D(struct HWND__ *)" (?InitD3D@@YAJPAUHWND__@@@Z) 함수)에서 확인하지 못했습니다.

error LNK2019: _D3DXMatrixPerspectiveFovLH@20 외부 기호(참조 위치: "void __cdecl SetupMatrices(void)" (?SetupMatrices@@YAXXZ) 함수)에서 확인하지 못했습니다.

error LNK2019: _D3DXMatrixLookAtLH@16 외부 기호(참조 위치: "void __cdecl SetupMatrices(void)" (?SetupMatrices@@YAXXZ) 함수)에서 확인하지 못했습니다.

error LNK2019: _D3DXMatrixRotationY@8 외부 기호(참조 위치: "void __cdecl SetupMatrices(void)" (?SetupMatrices@@YAXXZ) 함수)에서 확인하지 못했습니다.

error LNK2019: __imp__timeGetTime@0 외부 기호(참조 위치: "void __cdecl SetupMatrices(void)" (?SetupMatrices@@YAXXZ) 함수)에서 확인하지 못했습니다.


Tutorial 3번 Matrices을 컴파일 하다보면 위와같은 Error를 만나게 된다....


일단

error LNK2019: _Direct3DCreate9@4 외부 기호(참조 위치: "long __cdecl InitD3D(struct HWND__ *)" (?InitD3D@@YAJPAUHWND__@@@Z) 함수)에서 확인하지 못했습니다.

위 애러는... 


지난 게시글인

[Direct3D] DivecCreate LNK2019, LNK1120, C2440, C2664 Error 해결법

을 확인하면 알수있듯..

"속성->구성속성->링커->입력->추가 종속성"에 d3d9.lib를 추가해주면 된다.



그 다음 애러인 

error LNK2019: _D3DXMatrixPerspectiveFovLH@20 외부 기호(참조 위치: "void __cdecl SetupMatrices(void)" (?SetupMatrices@@YAXXZ) 함수)에서 확인하지 못했습니다.

error LNK2019: _D3DXMatrixLookAtLH@16 외부 기호(참조 위치: "void __cdecl SetupMatrices(void)" (?SetupMatrices@@YAXXZ) 함수)에서 확인하지 못했습니다.

error LNK2019: _D3DXMatrixRotationY@8 외부 기호(참조 위치: "void __cdecl SetupMatrices(void)" (?SetupMatrices@@YAXXZ) 함수)에서 확인하지 못했습니다.

위 3가지 LINK Error는 이번 Tutorial 에서 d3d9.h가 아닌 d3dx9.h을 이용하면서 발생...


편집창을 확인하면 

#include <d3dx9.h>와 D3DX~부분이 빨간 밑줄 표시 되어있을것이다...

(아니라면 아래 단계중 포함디렉터리 부분은 패스해도 상관없을것으로 예상...)




해결 방법은 위 그림과 같이

"속성->구성속성->VC++ 디렉터리" 에서

포함디렉터리에 $(DXSDK_DIR)Include

참조디렉터리에 $(DXSDK_DIR)Lib\x86 또는 $(DXSDK_DIR)Lib\x64 (운영체제가 32bit이면 x86, 64bit이면 x64)

를 추가하고




"속성->구성속성->링커->입력->추가 종속성"에 d3dx9.lib를 추가해주면 된다.


마지막으로 

error LNK2019: __imp__timeGetTime@0 외부 기호(참조 위치: "void __cdecl SetupMatrices(void)" (?SetupMatrices@@YAXXZ) 함수)에서 확인하지 못했습니다.

이 애러는 TimeGetTime함수를 사용하기 위해서 포함한 mmsystem.h 때문에 생긴 애러로...




"속성->구성속성->링커->입력->추가 종속성"에 winmm.lib를 추가해주면 된다.

저작자 표시 비영리 동일 조건 변경 허락
신고

Direct 프로젝트 도중 


error LNK2019: _Direct3DCreate9@4 외부 기호(참조 위치: "long __cdecl InitD3D(struct HWND__ *)" (?InitD3D@@YAJPAUHWND__@@@Z) 함수)에서 확인하지 못했습니다.

fatal error LNK1120: 1개의 확인할 수 없는 외부 참조입니다.


위와 같은 애러가 나올경우 



위와 같이 링커->입력->추가 종속성에 d3d9.lib만 추가해주면 된다....


또 


error C2440: '초기화 중' : 'const char [13]'에서 'LPCWSTR'(으)로 변환할 수 없습니다.

error C2664: 'CreateWindowExW' : 매개 변수 2을(를) 'const char [13]'에서 'LPCWSTR'(으)로 변환할 수 없습니다.

error C2664: 'UnregisterClassW' : 매개 변수 1을(를) 'const char [13]'에서 'LPCWSTR'(으)로 변환할 수 없습니다.


위와 같은 애러가 나오는경우 




"D3D Tutorial" 을 L"D3D Tutorial" 처럼 해당 const char앞에 L을 붙여주거나

위의 화면처럼 구성속성->일반->문자집합을 멀티바이트 문자집합으로 사용으로 변경해주면 된다.



=_= 왜 책에는 그런 설명이 없지..


여튼..... 

책사놓고 이제야 펴서 시작하는데...

언능보고 딴것도 해야지......=_=;;

저작자 표시 비영리 동일 조건 변경 허락
신고