Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/02/2013, 17:37
Alfonso1
 
Fecha de Ingreso: septiembre-2010
Mensajes: 137
Antigüedad: 14 años, 2 meses
Puntos: 0
no puedo usar SDL con mmsystem

uso visual c++ 2008

quiero usar las funciones de sonido de mmsystem y los graficos de SDL.
puedo hacer andar mmsystem en modo consola, pero cuando itento usarlo con los graficos de SDL me da un error.

Este es mi codigo, simplemente inicializa graficos SDL, y antes del return intenta usar una funcion de mmsystem:

Código C++:
Ver original
  1. #include "SDL.h"
  2. #include <Windows.h>
  3. #include <mmsystem.h>
  4.  
  5. HWAVEIN hWaveIn;
  6. WAVEHDR WaveInHdr;
  7. MMRESULT result;
  8. WAVEFORMATEX pFormat;
  9.  
  10. int main(int argc, char* args[]) {
  11.     //INICIALIZO GRAFICOS SDL
  12.     SDL_Surface* screen = NULL;
  13.     SDL_Init( SDL_INIT_EVERYTHING );
  14.     screen = SDL_SetVideoMode( 640, 480, 32, SDL_SWSURFACE );
  15.     SDL_Flip( screen );
  16.     SDL_Delay( 2000 );
  17.     SDL_Quit();
  18.    
  19.     //INICIALIZO VARIABLES DE SONIDO MMSYSTEM
  20.     int sampleRate=44100;
  21.  
  22.     pFormat.wFormatTag = WAVE_FORMAT_PCM;
  23.     pFormat.nChannels = 1;
  24.     pFormat.nSamplesPerSec = sampleRate;
  25.     pFormat.wBitsPerSample = 16;
  26.     pFormat.nBlockAlign = pFormat.nChannels*pFormat.wBitsPerSample/8;
  27.     pFormat.nAvgBytesPerSec = pFormat.nChannels*pFormat.wBitsPerSample/8;
  28.     pFormat.cbSize=0;  
  29.  
  30.     result = waveInOpen(&hWaveIn, WAVE_MAPPER,&pFormat, 0L, 0L, WAVE_FORMAT_DIRECT);
  31.     return 0;
  32. }


el error que me da es el siguiente:
error LNK2001: unresolved external symbol __imp__waveInOpen@24 main.obj

si comento la linea antes del return el codigo compila y ejecuta bien:
...
//result = waveInOpen(&hWaveIn, WAVE_MAPPER,&pFormat, 0L, 0L, WAVE_FORMAT_DIRECT);
return 0;
}

como hago andar esto?