Оказалось, что организовать вызов Perl-скриптов из C/C++ (MS Visual C++ 2010) достаточно просто:
===
Перепечатка материалов блога разрешается с обязательной ссылкой на blog.coolsoftware.ru
- Прописываем в Include Directories и Library Directories проекта путь к Perl\CORE:
- Добавляем perl512.lib в Linker->Input->Additional Dependencies.
- Ниже приведен пример кода, вызывающего perl из консольного приложения C++. Обращу внимание на два момента: a) #pragma warning (disable:4005) для подавления сообщения компилятора "'ENOTSOCK' : macro redefinition"; b) если опустить вызов PERL_SYS_INIT(0, NULL), то на шаге perl_parse получим Access Violation.
- #include "stdafx.h"
- //avoid warning C4005: 'ENOTSOCK' : macro redefinition
- #ifdef _MSC_VER
- #pragma warning ( disable : 4005 )
- #endif
- #include <perl.h>
- PerlInterpreter *my_perl;
- int _tmain(int argc, _TCHAR* argv[])
- {
- PERL_SYS_INIT(0, NULL);
- my_perl = perl_alloc();
- perl_construct(my_perl);
- perl_parse(my_perl, NULL, argc, argv, NULL);
- perl_run(my_perl);
- perl_destruct(my_perl);
- perl_free(my_perl);
- return 0;
- }
===
Перепечатка материалов блога разрешается с обязательной ссылкой на blog.coolsoftware.ru
Комментариев нет:
Отправить комментарий