портинг модуля из Дельфи

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

Ответить
Аватара пользователя
Romtek
постоялец
Сообщения: 190
Зарегистрирован: 22.05.2005 12:29:35
Откуда: Рамат Ган
Контактная информация:

Сообщение Romtek »

Собрался спортировать модуль для загрузки моделей GMS из Delphi в FPC и столкнулся с такой проблемой:
при запуске программы, скомпилированной в Дельфи, модель отображается без проблем, а в версии для FPC вываливается ошибка типа "An Unhadled exception occured at...EAccessViolation: ..."
Применяются модули Gl, Glu, Glut (OpenGL) и компилятор FPC версии 1.9.6

Исходники одни и те же, а результаты разные. Кто знает, куда копать?

Исходники для обоих компиляторов со всеми необходимыми файлами закодированы UUE и открываются в Тотал Коммандере и Винраре (т.к. нет функции прикрепления файлов к сообщению).

Файл gmsmodel.uue (29.4 KB):
<span style='color:red'>...
Порезано модератором. Если файл ещё нужен, то уже можно его закачать на сайт и сделать ссылку.
...</span>
Bohdan
новенький
Сообщения: 87
Зарегистрирован: 11.05.2005 11:31:46
Откуда: Ukraine, Kyiv
Контактная информация:

Сообщение Bohdan »

Архив битый :(
Sniper

Сообщение Sniper »

Постави после program вот это и всё пройдёт =)
{$IFDEF FPC}{$MODE Delphi}{$ENDIF}
Аватара пользователя
Romtek
постоялец
Сообщения: 190
Зарегистрирован: 22.05.2005 12:29:35
Откуда: Рамат Ган
Контактная информация:

Сообщение Romtek »

Bohdan, архив не битый, я проверял.

Sniper
Спасибо, работает! :)
Аватара пользователя
Cheb
энтузиаст
Сообщения: 994
Зарегистрирован: 06.06.2005 15:54:34
Контактная информация:

Сообщение Cheb »

GLUT - полное, стопроцентное, абсолютное оно!!
Я сам долго лбом бился (в Линуксе), методы ковыряния в исходниках показали, что динамическая библиотека не грузится, GLUT модуль это молча глотает (там за каким-то бесом проверка успешности закомментирована), и дальше всё летит при загрузке процедур...

Я, в конце концов, просто забил на GLUT, и создал её упрощённый аналог с нуля (Win32&Linux), прямо на ФриПаскале. Если интересно - <a href='http://www.chebmaster.narod.ru/cge/cheblib_winman.html' target='_blank'>лежит тут</a>. Только там, конечно, пара багов есть неисправленных. Более совершенная версия существует, но она уже намертво вшита в мой движок, и если хотите использовать, выдирать придётся с мясом...
SovNarKom
постоялец
Сообщения: 389
Зарегистрирован: 28.05.2005 10:37:39
Откуда: Воронеж [vrn] [36]
Контактная информация:

Сообщение SovNarKom »

А уменя не работает -> External... 000000 типа нет в длл такой...
PixelFormat:=ChoosePixelFormat(DC, @PFDescriptor);
Директивы в норме.
SovNarKom
постоялец
Сообщения: 389
Зарегистрирован: 28.05.2005 10:37:39
Откуда: Воронеж [vrn] [36]
Контактная информация:

Сообщение SovNarKom »

О! С сайта www.delphi3d.net обновил GL.pas
Пришлось правда немного поправить. Если кому нужен - могу залить.
Аватара пользователя
Cheb
энтузиаст
Сообщения: 994
Зарегистрирован: 06.06.2005 15:54:34
Контактная информация:

Сообщение Cheb »

А уменя не работает -> External... 000000 типа нет в длл такой...

Под Виндовс эта функция приносит немеряную головную боль.
Если кратко, она должна быть в opengl32.dll, а та, что в gdi32.dll - устаревшая (так, вроде?), и попытка её вызвать вызовет жестокие глюки, а под 98-й и полный крах системы.

Я, честно, просто плюнул на всё это, оставив у себя толькоо загрузку из opengl32.dll.

Народ, если кому не лень - проверьте мои примеры (вес в исходниках - всего 100 килобайт) - не будет оно жаловаться на отсутствие этих ф-й?..
Аватара пользователя
Romtek
постоялец
Сообщения: 190
Зарегистрирован: 22.05.2005 12:29:35
Откуда: Рамат Ган
Контактная информация:

Сообщение Romtek »

Cheb и SovNarKom, не отклоняйтесь от темы!

GLUT тут нипричём, т.к. проблема была именно с модулем Mesh. А он как раз не использовал её!

Не надо предлагать использовать мне другие библиотеки. Тем более, существует проект
<a href='http://openglut.sourceforge.net/' target='_blank'>OpenGLUT</a>. ;)
Ответить