Прототип

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
BOB
Ветеран
Сообщения: 336
Зарегистрирован: 17 Июль 2005, 5:43

Прототип

Сообщение BOB »

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

Видимо дело в прототипе glutReshapeFunc
как правильно его описать ?
Спасибо
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3133
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 10 раз
Поблагодарили: 28 раз
Контактная информация:

Сообщение Дед Пахом »

Попробуй прототип изменить: добавь ",PASCAL" в конце декларации своей процедуры
С уважением, ДП
BOB
Ветеран
Сообщения: 336
Зарегистрирован: 17 Июль 2005, 5:43

Сообщение 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) может кому надо

Еще раз спасибо.
Ответить