J'essaye d'utiliser la classe CSoundManager du fichier DXUTsound.h du SDK, mais j'obtiens des erreur de link où d'entête précompilé ( .pch) manquant.
J'ai réinstallé un système entier et j' obtiens les mêmes erreurs.
J'ai utiliséet/ou linké dxguid.lib
Code : Sélectionner tout - Visualiser dans une fenêtre à part #define INITGUID
voici les librairies incluses dans la projet :
dsound.lib
odbc32.lib
odbccp32.lib
comctl32.lib
winmm.lib
d3d9.lib
d3dx9.lib
dxguid.lib
dxerr.lib
dinput8.lib
dxerr9.lib
d3dxof.lib
J'incorpore donc dans code le fichier "dxstdafx.h" des entêtes directx. Celui ci charge DXUTsound.h et la ligne suivante
donne l'erreur : DoomDX9.obj : error LNK2019: unresolved external symbol "public: __thiscall CSoundManager::CSoundManager(void)" (??0CSoundManager@@QAE@XZ) referenced in function "bool __cdecl InitDirectSound(void)" (?InitDirectSound@@YA_NXZ)
Code : Sélectionner tout - Visualiser dans une fenêtre à part CSoundManager* g_pSoundManager = new CSoundManager();
Si j'include dans mon projet DXUTsound.h et .cpp j'obtiens l'erreur :
e:\doomdx9\common\dxutsound.cpp(1580) : fatal error C1010: unexpected end of file while looking for precompiled header. Did you forget to add '#include "StdAfx.h"' to your source?
Erreur au niveau des headers précompilés.
A noter, les lignes de code suivantes compilent sans erreur:
Est ce que quelqu'un à déjà vu ce type d'erreur ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 hr=DirectSoundCreate8( NULL, &g_lpDirectSound8, NULL ); if (hr!=D3D_OK) {OutputDebugString( TEXT("InitDirectSound DirectSoundCreate8 erreur\n"));} hr=g_lpDirectSound8->SetCooperativeLevel( g_hWndMain, DSSCL_PRIORITY ); if (hr!=D3D_OK) {OutputDebugString( TEXT("InitDirectSound SetCooperativeLevel erreur\n"));} LPDIRECTSOUNDBUFFER pSoundBuf=NULL; // Get the primary buffer DSBUFFERDESC dsbd; ZeroMemory( &dsbd, sizeof(DSBUFFERDESC) ); dsbd.dwSize = sizeof(DSBUFFERDESC); dsbd.dwFlags = DSBCAPS_PRIMARYBUFFER; dsbd.dwBufferBytes = 0; dsbd.lpwfxFormat = NULL; hr=g_lpDirectSound8->CreateSoundBuffer(&dsbd,&pSoundBuf,NULL); if (hr!=D3D_OK) {OutputDebugString( TEXT("InitDirectSound CreateSoundBuffer erreur\n"));} WAVEFORMATEX wfx; ZeroMemory( &wfx, sizeof(WAVEFORMATEX) ); wfx.wFormatTag = (WORD) WAVE_FORMAT_PCM; wfx.nChannels = (WORD) 2; wfx.nSamplesPerSec = (DWORD) 22050; wfx.wBitsPerSample = (WORD) 16; wfx.nBlockAlign = (WORD) (wfx.wBitsPerSample / 8 * wfx.nChannels); wfx.nAvgBytesPerSec = (DWORD) (wfx.nSamplesPerSec * wfx.nBlockAlign); hr = pSoundBuf->SetFormat(&wfx); if (hr!=D3D_OK) { DXTRACE_ERR(TEXT("SetPrimaryBufferFormat pSoundBuf SetFormat erreur\n"),hr);}
Y at-il un autre framework hors des fichiers DXUT ?
merci d'avance
Partager