Topic: Вопросы по устройству sdl-instead

** Зачем нужен SDL_anigif.c **
Сабж.

Re: Вопросы по устройству sdl-instead

Для поддержки анимированных gif. wink

Re: Вопросы по устройству sdl-instead

Гмм.. Похоже я угадал smile
Просто немного удивил тот факт, что его функции экспортируются.. Хотя это, видимо, уже хаки разрабов SDL. Вообще не могу понять - зачем Instead-у нужно переходить в собственную папку? Только для доступа к ресурсам? Он не перезапускает себя, никак не использует собственный исполняемый файл? Понимаю, вопрос странный, но после компиляции в качестве разделяемой библиотеки, код чёрте-что выкидывает.

Re: Вопросы по устройству sdl-instead

Вот main.c с которым собираю

Post's attachments

Attachment icon main.c 8.49 kb, 155 downloads since 2011-07-10 

Re: Вопросы по устройству sdl-instead

Ну для разных платформ поведение разное. В любом случае поведение настраивается флагами (см Makefil'ы). В чем проблема (вопрос) я пока не понял.

Re: Вопросы по устройству sdl-instead

Проблема:
В Windows (других платформ не имею и судить не могу) собранный в качестве разделяемой библиотеки интерпретатор крашится при попытке использования по назначению. Вызываю main() из Java через JNI с обычными параметрами. Чтобы обойти "своеобразное" поведение интерпретатора, заключающееся в переходе в папку с исполняемым файлом, в argv[0] передаётся путь к папке с файлами данных, в которую и производится переход. Instead валит JVM, из-за JNI всё это хрен отладишь. Ошибка не появляется, если в кач-ве такой папки указать папку с установленным интерпретатором. Если переименовать/удалить исполняемый файл (экзешник в папке не имеющий никакого отношения к работе JNI) всё падает. В этом случае грешу на попытку SDL загрузить что-то (иконку?) из sdl-instead.exe (его имя что - где-то намертво прописано?). Во втором случае, если указывать папку, в которую вручную выгрузил всё (включая sdl-instead.exe и всё содержимое установочной папки) крашится всегда. Ничего не понимаю ))):

Re: Вопросы по устройству sdl-instead

> Ничего не понимаю.

Я тоже.  smile Особенно учитывая то, что, например, wince версия не делает переходы в каталоги, так как там вообще нет понятия cwd, и setdir() не вызывает chdir(), а просто сохраняет пути во внутреннем буфере.

Насчет проблемы - sdl-instead никогда и не позиционировался как разделяемая библиотека Windows (или к.л. другой системы). Я не знаю, вообще SDL приложение должно быть соотв образом проинициализировано, я думаю в твоей сборке код инициализации SDL каким-то образом тоже должен присутствовать. main вызывается уже после того, как проинициализирован SDL. Как это все делается в java - я не знаю.