![]() |
|
Модераторы: korob2001, ginnie |
![]()
|
|
| cybear |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 20.11.2004 Где: Tallinn, Estonia Репутация: нет Всего: нет |
Собственно сабж
Есть прога на С++, она должна обращаться к функции написанной перле - как это лучше сделать? брать неофициальный перл2ехе и просто вызывать ехе ооооооочень ресурсоёмко, а желательно это как раз с мин потерей времени делать. |
|||
|
||||
| korob2001 |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 31 Всего: 61 |
Я не знаю как с C++, но в C можно встроить сам Perl, так как Perl интерпритатор так же написан на C.
Допутим есть такая программа на Perl:
Мы хотим из C программы вызвать подпрограмму showtime. теперь на C пишем такой код:
Сейчас сына положу спать и пороюсь ещё в доках. Помоему, можно транслировать Perl программу в программу на C. ( XS ) Удачи. -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
||||
|
|||||
| korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 31 Всего: 61 |
Вобщем, вот с чем тебе не мешало бы ознакомиться, для того что бы встроить Perl в программу на C, кстати там, помоему, описано и о C++. Думаю, большой разницы не будет:
perldoc ExtUtils::Embed perldoc perlcall Для использования функций из внешней библиотеки C: perldoc perlxstut Удачи. Это сообщение отредактировал(а) korob2001 - 10.12.2004, 00:59 -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
| chaos |
|
|||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: 6 Всего: 44 |
Советую почитать про XSUB
|
|||
|
||||
| chaos |
|
||||||||||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: 6 Всего: 44 |
вот тебе пример(Передача аргументов подпрограмму)
Функция на С каторая вызывает LeftString
Пример вызов без параметров
Извени прокоментировать не могу тк опаздываю, в другой раз Это сообщение отредактировал(а) chaos - 10.12.2004, 16:04 |
||||||||||
|
|||||||||||
| Kefir |
|
|||
|
«Hakuna Matata» ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1878 Регистрация: 25.1.2003 Где: Tampere, Suomi Репутация: нет Всего: 87 |
chaos, а как связан код на перле и на С? т.е. я не вижу никаких ссылок в коде С на файл с кодом перла...
|
|||
|
||||
| cybear |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 20.11.2004 Где: Tallinn, Estonia Репутация: нет Всего: нет |
Всем спасибо, будем пробовать. Хотя конечно это не так просто когда один человек знает только С++, а другой - только перл ;(
Kefir я так понял что связь идёт через библиотеки EXTERN.h и perl.h - последняя вроде как должна работать как интерпретатор перла. |
|||
|
||||
| korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 31 Всего: 61 |
Если до понедельника не разберёшься, дай знать, будем разбираться вместе. Просто эту неделю я с сыном и времени не хватает, а вот на следующей неделе сын будет у мамы.
Думаю разберёмся. -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
| chaos |
|
|||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: 6 Всего: 44 |
выполни h2xs -A -n Test думая станет яснее |
|||
|
||||
![]()
|
| Правила форума "Perl" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |