12-13-2011, 05:21 AM
(Сообщение последний раз редактировалось: 12-13-2011, 05:30 PM n3k0nation.)
Немного предыстории:
Понадобилось мне в одном сишном приложении проигрывать xm/mod-файлы, немного погуглив я нашел замечательную библиотеку uFMOD, но все оказалось не так красочно, как я думал.
Добавил заголовочник, неявно подключил библиотеку, все замечательно скомпилировалось, запускаю дебаг и мой поток пропадает после прыжка в uFMOD_PlaySong. Что с ним происходит там - непонятно, но назад он уже не возвращается. Если насильно начать шатдаунить приложение, то через некоторое время оно просто падает.
Попробовал скомпилировать пример работы с библиотекой, все работает и открывается, даже проигрывает. Посмотрел код, конфигурацию линковщика: в принципе почти одно и тоже, за исключением одного момента - в примере, самой библиотеки нет, для работы там стоит заглушка в виде obj-файла т.н. реализации хедера, ну и плюс прилинковывание функций вава из winmm для obj.
So... Перед тем, как уйти в прострацию, звук все таки появляется, на миллисекунды, которые близки к одной секунде, т.е. библиотека все таки нормально открывает xm-файл и даже читает из него.
Сижу и гадаю сейчас в чем может быть проблема, ибо в гугле вообще даже ничего похожего нет, кроме темы по C#, но там совершенно другая суть проблемы.
Среда и компилятор: VS2008
Версия uFMOD: 1.25.2(a)
Язык: Си
P.S: только сейчас догадался проверить GetLastError, но это уже завтра и скорее всего ни к чему не приведет, ибо библиотека полностью на АСМе и кроссплатформенная.
Добавлено через 14 минут
Забыл добавить, что использую winmm вывод звука uFMOD
Добавлено через 9 часов 14 минут
Решил еще раз пробежаться дебагером и узнал, что при одновременной работе uFMOD и стандартной сишной функции system идет именно такой эффект, как я описывал. Магия, не иначе... Если убрать вызов system, то в принципе ничего не меняется, разве, что поток не виснет: звука по прежнему нет и при шатдауне у нас капитальный висяк. Копаем дальше
Добавлено через 12 часов 9 минут
К сожалению черная магия победила меня, сменил библиотеку на miniFMOD
Понадобилось мне в одном сишном приложении проигрывать xm/mod-файлы, немного погуглив я нашел замечательную библиотеку uFMOD, но все оказалось не так красочно, как я думал.
Добавил заголовочник, неявно подключил библиотеку, все замечательно скомпилировалось, запускаю дебаг и мой поток пропадает после прыжка в uFMOD_PlaySong. Что с ним происходит там - непонятно, но назад он уже не возвращается. Если насильно начать шатдаунить приложение, то через некоторое время оно просто падает.
Попробовал скомпилировать пример работы с библиотекой, все работает и открывается, даже проигрывает. Посмотрел код, конфигурацию линковщика: в принципе почти одно и тоже, за исключением одного момента - в примере, самой библиотеки нет, для работы там стоит заглушка в виде obj-файла т.н. реализации хедера, ну и плюс прилинковывание функций вава из winmm для obj.
So... Перед тем, как уйти в прострацию, звук все таки появляется, на миллисекунды, которые близки к одной секунде, т.е. библиотека все таки нормально открывает xm-файл и даже читает из него.
Сижу и гадаю сейчас в чем может быть проблема, ибо в гугле вообще даже ничего похожего нет, кроме темы по C#, но там совершенно другая суть проблемы.
Среда и компилятор: VS2008
Версия uFMOD: 1.25.2(a)
Язык: Си
P.S: только сейчас догадался проверить GetLastError, но это уже завтра и скорее всего ни к чему не приведет, ибо библиотека полностью на АСМе и кроссплатформенная.
Добавлено через 14 минут
Забыл добавить, что использую winmm вывод звука uFMOD
Добавлено через 9 часов 14 минут
Решил еще раз пробежаться дебагером и узнал, что при одновременной работе uFMOD и стандартной сишной функции system идет именно такой эффект, как я описывал. Магия, не иначе... Если убрать вызов system, то в принципе ничего не меняется, разве, что поток не виснет: звука по прежнему нет и при шатдауне у нас капитальный висяк. Копаем дальше
Добавлено через 12 часов 9 минут
К сожалению черная магия победила меня, сменил библиотеку на miniFMOD
m0nster.art - clear client patches, linkz to utils & code.
Гадаю по капче.
Гадаю по капче.