Неполный тип
#include "SDL_mixer.h", и все должно быть в порядке1,2.
Компилятор не может компилировать код, связанный с SDL, без включения SDL, чтобы сообщить ему, на что ссылаются эти ссылки SDL (Mix_Musi, Mix_LoadMUS и т. д.). См. учебное пособие по SDL_Mixer на странице kekkai.org/roger3. Там есть полный пример.
1 Включаемый файл SDL
2 Mix_LOadMUS
3 Учебное пособие по SDL с полным примером
--
Обновление: использование массива музыкальных элементов
Это пример того, как получить доступ к определенному указателю на Mix_ Music из кода потока или в любом месте, лексически отделенном от выделения переменной указателя. Реальная реализация может захотеть использовать динамическое выделение массива и должна добавить обработку ошибок для файлов, не найденных или не загруженных, и т. д.
MEnt.h Общий файл iclude для модулей инициализации и потока:
#include <cstdlib>
#include "SDL.h"
#include "SDL_mixer.h"
enum { MAXENTRIES=1024 };
struct MEnt{
Mix_Music * music;
char *filename;
};
extern MEnt Marray[MAXENTRIES];
extern int Mselected;
Инициализация программы:
#include "MEnt.h"
// Alocate space for array of music items
MEnt Marray[MAXENTRIES];
int Mselected=-1;
В код потока включите:
#include "MEnt.h"
// Return a pointer for the selected music item:
// Allocate new Mix_Music* if not already done,
// otherwise return the already allocated pointer.
Mix_Music *getSelected(){
Mix_Music *music;
if(Mselected >= 0 && Mselected < MAXENTRIES){
struct MEnt ¤t=Marray[Mselected];
if(!(music=current.music) &&
(current.filename!=NULL))
music=current.music=
Mix_LoadMUS(current.filename);
}
return music;
}
person
frayser
schedule
21.11.2010
Mix_Music *music = Mix_loadMUS(file);
- person frayser   schedule 21.11.2010