FMod Memory Stream Problem

EDIT: Что ж... это очень интересно. Я превратил настройки в указатель и передал его. Работает замечательно. Итак, проблема решена. Я оставлю вопрос открытым для тех, кому интересно узнать ответ.

У меня проблема с созданием звука в FMod из потока памяти. Я посмотрел пример loadfrommemory, поставляемый с FMod, и последовал ему. Сначала код, который я использую...

CSFX::CSFX(CFileData *fileData)
{
FMOD_RESULT result;
FMOD_CREATESOUNDEXINFO settings;
settings.cbsize = sizeof(FMOD_CREATESOUNDEXINFO);
settings.length = fileData->getSize();
_Sound = 0;
std::string temp = "";

for (int i = 0; i < fileData->getSize(); i++)
    temp += fileData->getData()[i];

result = tempSys->createSound(temp.c_str(), FMOD_SOFTWARE | FMOD_OPENMEMORY, &settings,        &_Sound);
}

В таком виде я получаю нарушение доступа на tempSys->createSound(). Я подтвердил, что tempSys действителен, так как он работает при создании звука из файла. Я также подтвердил, что char * с моими данными действителен, записав их содержимое в файл, который я затем смог открыть в Media Player. У меня такое ощущение, что проблема в настройках. Если я изменяю этот параметр на 0, программа не взрывается, и в итоге я получаю результат = FMOD_ERR_INVALID_HANDLE (что имеет смысл, учитывая, что 3-й параметр равен 0). Есть идеи, что я делаю не так?

Также, пожалуйста, не обращайте внимания на использование std::string, я использовал его для некоторых тестовых целей.

5
задан MGZero 22 September 2011 в 02:11
поделиться