Главная страница


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Vladimir Ivanov                      2:5020/400     24 Mar 2003  21:21:02
 To : All
 Subject : Вызов C callback из embedded perl
 -------------------------------------------------------------------------------- 
 
 Hello, All!
 
 Использую Perl API для вcтраивания perl-скрипта в мою программу на С.
 С вызовом процедур из скрипта, модификацией глобальных переменных -
 разобрался - проблем нет.
 
 Вопрос назрел:
 Hа C реализована некая callback-функция. Как её можно вызвать из perl ?
 
 Т.е. сделать что-то вроде-этого:
 
 ------- perl'овый код:  test.pl ------
 
 sub perl_sub
 {
   # ?   my $callback = shift;
   print "hello from perl\n";
   # ?   &$callback ;  # вызов сallback
 }
 
 ------ Сишный код: test.c --------
 #include <EXTERN.h>
 #include <perl.h>
 static PerlInterpreter *my_perl;
 
   void c_callback()
   {
      printf ("hello from c\n");
   }
 
   int main(int argc, char **argv, char **env)
   {
       char *myargv[]={ "","test.pl",NULL};
       my_perl = perl_alloc();
       perl_construct(my_perl);
 
       perl_parse(my_perl, NULL, 2, myargv, NULL);
 
       call_argv("perl_sub", G_DISCARD, NULL);
                 // здесь необходимо передать в качестве параметра
                 // нечто вроде ссылки на c_callback
 
       perl_destruct(my_perl);
       perl_free(my_perl);
   }
 -------------------------------
 
 Hеобходимо на выходе получить:
 ---------
 hello from perl
 hello from c
 ---------
 Help plz.
 В принципе, передача "ссылки на код" через параметр не обязательна -
 сгодятся
 варианты вызова заранее предопределённых C-шных функций.
 
 Вариант написать модуль - не подходит.
 
 With best regards,
 Vladimir Ivanov.
 --- ifmail v.2.15dev5
  * Origin: -censored- (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Вызов C callback из embedded perl   Vladimir Ivanov   24 Mar 2003 21:21:02 
 Re: Вызов C callback из embedded perl   Andrey Sapozhnikov   24 Mar 2003 22:42:37 
 Re: Вызов C callback из embedded perl   Vladimir Ivanov   25 Mar 2003 10:26:10 
 Re: Вызов C callback из embedded perl   Vladimir Ivanov   25 Mar 2003 11:24:32 
Архивное /ru.perl/11054c9abc168.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional