GIL Larkin
Фев. 28, 2009 11:00:14
Приветствую форумчан. Я совсем недавно начал работать с Питоном, и мне буквально сразу попалась нетривиальная задача. Если кто сможет помочь - буду крайне благодарен.
Задача такова: нужно сделать модуль расширения для Python на C++. Но существуют ограничения: это должна быть dll, версия Python - 1.5.2, и язык именно С++. SWIG, boost, сtypes по разным причинам не подходят(в основном из-за версии Python) . Нужен работающий пример содержащий одну экспортируемую функцию(для простоты).
P.S.: Прошу не отсылать “в поиск”, “в гугл”, “читай мануалы”. Неделю уже бьюсь курю маны и исходники на C. Пока мало что вышло :(.
GIL Larkin
Фев. 28, 2009 12:54:38
о_О это вроде чистый C. Этот пример С++ компилятором точноскомпилируется?
Lexander
Фев. 28, 2009 12:59:00
А какая разница. Хоть на Паскале пишите. У вас все равно есть конечный продукт - DLL.
GIL Larkin
Фев. 28, 2009 13:16:20
) вы не поняли) я новичок в питоне, и я слабо представляю что и как нужно сделать чтобы dll скомпилированая mingw32 компилятором воспринялась питоном как модуль расширения. Все примеры которые я видел в интернете были на чистом С, и компилились в основном с ошибками компиляции. Был бы благодарен если бы кто-то из спецов выделил немного времени новичку и объяснил на простом примере как сделать dll модуль расширения на С++. Держу пари) не один я бы спасибо сказал.
Ferroman
Фев. 28, 2009 13:37:12
Попробуйте вот это руководство и пишите конкретно, что именно не сработало.
GIL Larkin
Фев. 28, 2009 13:46:50
Я не могу использовать 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.
Lexander
Фев. 28, 2009 14:54:31
GIL Larkin
Я не могу использовать ctypes
Попробуй вместо ctypes использовать библиотеку dl.
GIL Larkin
Фев. 28, 2009 16:14:35
http://habrahabr.ru/blogs/python/44520/ - был, во первых на C, во вторых под линукс. Не компилится(((.
Lexander
http://habrahabr.ru/blogs/python/44520/
>версия Python - 1.5.2
К чему такая древность?
Что делать, есть програмка к которой нет исходников, и к ней python15.dll. И сделать с этим я ничего не могу. Приходится выкручиваться.
Lexander
Попробуй вместо ctypes использовать библиотеку dl.
попробую. Знать бы как с ней работать). +ушел в гугл+