![]() |
|
Модераторы: xvr |
![]()
|
|
| powerfox |
|
||||||||
![]() I wanna fork() ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3990 Регистрация: 1.10.2005 Где: Санкт-Петербург Репутация: 5 Всего: 97 |
Привет! Я извращаюсь с freepascal и SDL (сишной). Я для своей паскалевской лабораторки решил написать свою реализацию (частично) модуля graph на Си с SDL. Так как ни в fpc, ни в graph нет нормального graph, то я сейчас хочу полностью его для них написать. В fpc graph работает через svgalib, то есть запуск требуется от рута, выбрасывает "черти куда", дохнет консоль, в которой была вызвана программа (ломается ввод команд (отображение) и куча мусора появляется).
Я уже часть написал, но упёрся в отлов нажатия клавиш: SDL создаёт окно, там всё рисуется, но (!!!) моя программа ловит нажатие клавиш только когда активна консоль, с которой запустил приложение. Си код идентичен, а .o я собирал с помощью gcc, слинковано всё верно (иначе бы ничего не рисовалось), то есть проблему может вызывать только код, сгенерированный fpc. Я пробовал расссуждать так: по идее, окно создаётся с помощью нового процесса, но не fork'ается, так как нет в этом особого смысла, по всей видимости, устанавливается канал между процессами, а SDL функции манипулируют им... fpc мог намудрить с каналом. Но это только предположения. Добавлено @ 12:46 Вот пример (взято с туториала по SDL): Чисто Си код:
В паскале Си код такой же, но int main заменено на void drawSdl() + из .c убраны заголовки и добавлено #include "draw.h". draw.h:
drawU.pas:
main.pas:
Выполняется одинакоко, но в паскалевском варианте с клавишами проблема (ждёт нажатия Esc и не дождётся |
||||||||
|
|||||||||
| powerfox |
|
|||
![]() I wanna fork() ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3990 Регистрация: 1.10.2005 Где: Санкт-Петербург Репутация: 5 Всего: 97 |
Если запускать через тыканье из-под konqueror'а, то пашет нормально. В чём же дело?
|
|||
|
||||
![]()
|
| Правила форума "С/С++: Программирование под Unix/Linux" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |