2014-01-17 2 views
0

Gotta learn FMOD Для школьного проекта.Система FMOD :: System *; Что оно делает?

В коде (копируется из документации):

FMOD_RESULT result; 
FMOD::System *system; 
result = FMOD::System_Create(&system);  // Create the main system object. 
if (result != FMOD_OK) 
{ 
    printf("FMOD error! (%d) %s\n", result, FMOD_ErrorString(result)); 
    exit(-1); 
} 
result = system->init(100, FMOD_INIT_NORMAL, 0); // Initialize FMOD. 
if (result != FMOD_OK) 
{ 
    printf("FMOD error! (%d) %s\n", result, FMOD_ErrorString(result)); 
    exit(-1); 
} 

Что означает вторая линия делать (FMOD :: System * системы;)? Что делает следующая строка (результат = FMOD :: System_Create (&);)?

Я думаю, что система FMOD :: System *; создает указатель, а другая строка создает систему и проверяет наличие ошибок. Я просто не нуждаюсь в указателях.

Может кто-то пожалуйста, объясните благодарственные

+0

У вас должна быть документация, содержащаяся в SDK. – chris

+0

@Nabla, много библиотек C будут хорошо работать с 'SomeStruct s; Create (&s); 'Нет необходимости в указателе в вашем коде. Очевидно, эта функция принимает двойной указатель, и я предполагаю, что это абстрактный класс или что-то из-за этого. – chris

ответ

0

Вы первый объявить указатель типа FMOD::System*, а затем функция FMOD::System_Create заполнит указатель с объектом систем. Итак, если ничего не получилось, после третьей строки system укажет на действительный объект типа FMOD::System, чтобы вы могли позвонить system->init несколько строк ниже.

К сожалению, документация для FMOD не является общедоступной, поэтому я не могу сказать больше. Но если вы получили доступ к нему, вы должны найти всю необходимую информацию.

Смежные вопросы