편집 : 글쎄요 ... 매우 흥미 롭습니다. 내가 포인터로 세팅하고 통과시켰다. 아름답게 일했습니다. 그래서, 이것은 해결되었습니다. 나는 그 대답에 호기심이 많은 사람들을 위해 그것을 열어 둘 것이다.FMod 메모리 스트림 문제
메모리 스트림에서 FMod에 사운드를 생성하는 데 문제가 있습니다. FMod와 함께 제공되는 loadfrommemory 예제를 살펴본 후 그것을 따라갔습니다. 이 같은이기 때문에 첫째, 내가 사용하고 코드 ...
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);
}
, 나는> createSound tempSys-에 액세스 위반을 얻을 수(). tempSys는 파일에서 사운드를 만들 때 작동하므로 유효하다는 것을 확인했습니다. 나는 또한 내 데이터가있는 char *가 미디어 플레이어에서 열 수있는 파일에 내용을 쓰는 것으로 유효하다는 것을 확인했습니다. 설정에 문제가 있다는 느낌이 들었습니다. 해당 매개 변수를 0으로 변경하면 프로그램이 폭발하지 않고 result = FMOD_ERR_INVALID_HANDLE로 끝납니다 (이는 세 번째 매개 변수가 0이라고 생각하면 의미가 있습니다). 내가 뭘 잘못하고 있는거야?
또한 std :: string을 사용하지 말고 시험용으로 사용했습니다.