Сейчас на форуме: _MBK_ (+7 невидимых)

 eXeL@B —› Основной форум —› Моддинг игры Little Fighter2(добавляю проигрывание MP3)
Посл.ответ Сообщение


Ранг: 110.0 (ветеран), 1thx
Активность: 0.090
Статус: Участник

Создано: 03 июля 2007 12:14 · Поправил: Satanael
· Личное сообщение · #1

Вообщем решил я замутить проигрывание музыки в мп3 формате в вот этой игрухе в зависимости от выбраного заднего бэкграунда. Юзаю bass.dll
Вот код:
----------------
push "bass.dll"
call LoadLibraryA
mov dword ptr ds:[00814049], eax
push "BASS_StreamCreateFile"
push eax
call GetProcAddress
mov dword ptr ds:[00814041], EAX
push "BASS_ChannelPlay"
push dword ptr ds:[00814049]
call GetProcAddress
mov dword ptr ds:[0081400D], eax
push 0
push 0
push 0
push dword ptr ds:[00814000]
push 0
call BASS_StreamCreateFile

push 1
push eax
call BASS_ChannelPlay
push "kernel32.dll"
call LoadLibraryA
push "FreeLibrary"
push eax
call GetProcAddress
push "bass.dll"
call eax

--------------------------
Функция BASS_StreamCreateFile срабатывает не правильно. Если всё правильно то то в EAX возвращается значение: B0000001 если нет то 0. Компилирую например проект на дельфи, прохажу по коду из под отладчика, функция отрабатывает нормально а у меня в чужой проге не работает? Почему так может быть?
Я всё правильно пишу:
push 0
push 0
push dword ptr ds:[00814000]
push 0
call BASS_StreamCreateFile


00814000 (самое начало секции, добавленое через pe-редактор) - Тут содержится 4-х байтовый указатель на строку.

P.S. Раньше эта функция нормально работала в чужом экзе, хз что случилось...

-----
Никто не знает столько, сколько не знаю я





Ранг: 110.0 (ветеран), 1thx
Активность: 0.090
Статус: Участник

Создано: 04 июля 2007 06:38
· Личное сообщение · #2

Тьфу всё нашёл ошибку, спасибо...

-----
Никто не знает столько, сколько не знаю я



 eXeL@B —› Основной форум —› Моддинг игры Little Fighter2(добавляю проигрывание MP3)
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати