|
2.3.1은 예전에 써봤고... 마지막으로 체크했던게 2.3.3이었지요.
우여곡절을 많이 겪었던 것 같네요. 거의 기억할 수 없습니다만;
어쨌든 고생하실 듯 해서, 간만에 DSPACK을 셋팅해 봤습니다.
2.3.3에서도 문제가 있어서 Pascal 소스를 조금 수정했었는데,
그만큼은 아니지만 여전히 버그가 있군요.
우선 pascal 소스를 컴파일해서 생성된
DSUtil.hpp 에(오류가 발생했던)
#include <DxDiag.h> 를 추가 합니다.
그러면 심볼테이블에 없는 녀석들을 불러 발생한 쉼표가 어쩌니 하는 녀석들이 해결되죠.
그런 뒤 중복 선언된 상수들을 막아 주셔야 하는데,
//static const Shortint DXDIAG_DX9_SDK_VERSION = 0x6f;
//static const HRESULT DXDIAG_E_INSUFFICIENT_BUFFER = 0x8007007a;
//static const __int64 NANOSECONDS = 0x3b9aca00;
이것들이구요,
마지막으로
//extern PACKAGE __int64 __fastcall Int32x32To64(int a, int b);
//extern PACKAGE __int64 __fastcall UInt32x32To64(unsigned a, unsigned b);
를 해 주시면 됩니다.
이녀석들은 사실상 매크로인지라... 이렇게 쓸 필요가 없죠. (winnt.h 에 포함되어 있음)
그런 뒤 컴파일하면 컴파일은 이상 없을 겁니다.
다만, Runtime Packages 를 이용하지 않고 Static 하게 컴파일 할 땐
함수가 없다고 징징댈 텐데... 이 때,
프로젝트 메니져에(Ctrl+Alt+F11) DSPACK 아래 Lib 에 있는 화일들을 포함시켜 주시면 됩니다.
모조리 다 던져 둬도(Drag Drop) 되지만 결벽증이 있으시다면
일반적으로 d3d9.lib, quartz.lib, wmvcore.lib 정도 추가해 두시면 되지요.
건투를 빕니다.
p.s. ~~욤 같은 통신용어 표기는 다소 혐오스럽습니다. 제가 별나서인진 모르겠습니다만...
나이든 개발자들은 보편적으로 그렇지 않을까... 생각되네요...
기분 나빠서 답글 안 달려다가... 예전에 워낙 고생했던게 생각나 달아 보았습니다.
참고하셨으면 합니다.
|