Форум сайта python.su
Приветствую форумчан. Я совсем недавно начал работать с Питоном, и мне буквально сразу попалась нетривиальная задача. Если кто сможет помочь - буду крайне благодарен.
Задача такова: нужно сделать модуль расширения для Python на C++. Но существуют ограничения: это должна быть dll, версия Python - 1.5.2, и язык именно С++. SWIG, boost, сtypes по разным причинам не подходят(в основном из-за версии Python) . Нужен работающий пример содержащий одну экспортируемую функцию(для простоты).
P.S.: Прошу не отсылать “в поиск”, “в гугл”, “читай мануалы”. Неделю уже бьюсь курю маны и исходники на C. Пока мало что вышло :(.
Офлайн
В соседней ветке есть :)
http://mail.python.org/pipermail/python-list/2003-July/217228.html
Офлайн
о_О это вроде чистый C. Этот пример С++ компилятором точноскомпилируется?
Офлайн
А какая разница. Хоть на Паскале пишите. У вас все равно есть конечный продукт - DLL.
Офлайн
) вы не поняли) я новичок в питоне, и я слабо представляю что и как нужно сделать чтобы dll скомпилированая mingw32 компилятором воспринялась питоном как модуль расширения. Все примеры которые я видел в интернете были на чистом С, и компилились в основном с ошибками компиляции. Был бы благодарен если бы кто-то из спецов выделил немного времени новичку и объяснил на простом примере как сделать dll модуль расширения на С++. Держу пари) не один я бы спасибо сказал.
Офлайн
Попробуйте вот это руководство и пишите конкретно, что именно не сработало.
Офлайн
Я не могу использовать ctypes - это расширение требует Python 2.5, а у меня “версия Python - 1.5.2”
6. Use the ctypes module to access the DLL:
>>> from ctypes import *
>>> mydll = cdll.dlltest
>>> mydll
<CDLL ‘dlltest’, handle 10000000 at 9e5850>
Note: ctype module is already included from Python 2.5. If you are using an older version you can download ctypes here.
Офлайн
GIL LarkinПопробуй вместо ctypes использовать библиотеку dl.
Я не могу использовать ctypes
Офлайн
http://habrahabr.ru/blogs/python/44520/
>версия Python - 1.5.2
К чему такая древность?
Онлайн
http://habrahabr.ru/blogs/python/44520/ - был, во первых на C, во вторых под линукс. Не компилится(((.
LexanderЧто делать, есть програмка к которой нет исходников, и к ней python15.dll. И сделать с этим я ничего не могу. Приходится выкручиваться.
http://habrahabr.ru/blogs/python/44520/
>версия Python - 1.5.2
К чему такая древность?
Lexanderпопробую. Знать бы как с ней работать). +ушел в гугл+
Попробуй вместо ctypes использовать библиотеку dl.
Офлайн