Модераторы: Rickert, Alexeis, BorisVorontsov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Quake sources, Не понятки со звуком 
V
    Опции темы
batraq
Дата 24.3.2010, 17:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 12.4.2007

Репутация: нет
Всего: нет



День добрый

Есть вопрос - стал разбирать исходники 1-го Quake - слил всё как полагается с официального сайта, под моей MSVS2008 всё собралось. Дальше принял решение переползать с убого(сугубо на мой взгляд) plain C на С++. Понятно что послепереименования файлов с "*.c" на "*.cpp" всё поехало - стал лечить и напоролся на вот такой кусок кода
Код

void FreeSound (void)
{
    int        i;

    if (pDSBuf)
    {
        pDSBuf->lpVtbl->Stop(pDSBuf);
        pDSBuf->lpVtbl->Release(pDSBuf);
    }


Ошибка следующая

Цитата

c:\development\quake_src\processed\winquake_proc\snd_win.cpp(121) : error C2039: 'lpVtbl' : is not a member of 'IDirectSoundBuffer'
        c:\development\quake_src\processed\winquake_proc\dxsdk\sdk\inc\dsound.h(165) : see declaration of 'IDirectSoundBuffer'


Начал копать и выяснил, что в DirectX SDK который идёт вместе с исходниками Quake прописана вот такая байда в файле  DSOUND.H

Код

#if !defined(__cplusplus) || defined(CINTERFACE)
#define IDirectSound_QueryInterface(p,a,b)       (p)->lpVtbl->QueryInterface(p,a,b)
#define IDirectSound_AddRef(p)                   (p)->lpVtbl->AddRef(p)
#define IDirectSound_Release(p)                  (p)->lpVtbl->Release(p)
#define IDirectSound_CreateSoundBuffer(p,a,b,c)  (p)->lpVtbl->CreateSoundBuffer(p,a,b,c)
#define IDirectSound_GetCaps(p,a)                (p)->lpVtbl->GetCaps(p,a)
#define IDirectSound_DuplicateSoundBuffer(p,a,b) (p)->lpVtbl->DuplicateSoundBuffer(p,a,b)
#define IDirectSound_SetCooperativeLevel(p,a,b)  (p)->lpVtbl->SetCooperativeLevel(p,a,b)
#define IDirectSound_Compact(p)                  (p)->lpVtbl->Compact(p)
#define IDirectSound_GetSpeakerConfig(p,a)       (p)->lpVtbl->GetSpeakerConfig(p,a)
#define IDirectSound_SetSpeakerConfig(p,b)       (p)->lpVtbl->SetSpeakerConfig(p,b)
#define IDirectSound_Initialize(p,a)             (p)->lpVtbl->Initialize(p,a)
#endif


Может кто подскажет, что это за странные определения - поскольку StepInto не делается на асмовский код в той версии исходников которые собрались. Хочу понять что означают такие определения методов
PM MAIL   Вверх
batraq
Дата 24.3.2010, 19:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 12.4.2007

Репутация: нет
Всего: нет



Отбой 8))
Я сам дурак - понял что не так было - просто не там глядел
PM MAIL   Вверх
Rickert
Дата 25.3.2010, 02:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

Репутация: 2
Всего: 52



Поясни для потомков smile


--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
batraq
Дата 6.4.2010, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 12.4.2007

Репутация: нет
Всего: нет



Ну не в тот кусок кода смотрел надо было в другой - просто студия обычно закрашивает серым весь код который не будет выполнен из-за define, а тут чего-то не выделила вот я и думал какого фига здесь происходити смотрел не те объявления функций
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Вы можете найти полезным что...
Alexeis
Rickert
  • Английская документация по DirectX лежит где-то здесь.
  • Английская документация по OpenGL лежит где-то там.
  • Гейм-дев у нас обсуждают где-то тут

Ждём вас! С уважением, Alexeis, Rickert.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема »


 




[ Время генерации скрипта: 0.0775 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.