Страница 1 из 1

Прототип

Добавлено: 09 Март 2007, 10:13
BOB
Здравствуйте уважаемые.
Не работает почта по этому повторяю вопрос в форуме
Как описать на кларион если в С имеем
glutReshapeFunc(void (*func)(int width, int height))
Так называемая возвратнаая процедура в которую
отправляется адрес процедуры кларион и
процедура кларион начинает получать два параметра
по какому-либо событию
Так вот инициализация проходит и процедура кларион
вызывается когда надо , но параметры получает косые .
Например width получаем правильно , а height можно получить например так peek(address(width)+4,height )
То есть получаем параметры со сдвиго по адресу .

Видимо дело в прототипе glutReshapeFunc
как правильно его описать ?
Спасибо

Добавлено: 09 Март 2007, 10:55
Дед Пахом
Попробуй прототип изменить: добавь ",PASCAL" в конце декларации своей процедуры

Добавлено: 09 Март 2007, 12:05
BOB
Спасибо за мысль.
Добавил в декларацию СВОЕЙ процедуры параметр С
и все поехало .
В декларации чужой как всегда pascal
на си
extern void APIENTRY glutReshapeFunc(void (*func)(int width, int height))
на клаше

glutReshapeFunc(ulong),pascal

моя на клаше
map
myproc(long,long),c
end

инициализация
glutReshapeFunc(address(myproc))
Все работает

Библа glut32.dll (opengl) может кому надо

Еще раз спасибо.