Найти - Пользователи
Полная версия: Еще раз о расширениях Python(нужна помощь)
Начало » Python для новичков » Еще раз о расширениях Python(нужна помощь)
1 2
GIL Larkin
Приветствую форумчан. Я совсем недавно начал работать с Питоном, и мне буквально сразу попалась нетривиальная задача. Если кто сможет помочь - буду крайне благодарен.

Задача такова: нужно сделать модуль расширения для Python на C++. Но существуют ограничения: это должна быть dll, версия Python - 1.5.2, и язык именно С++. SWIG, boost, сtypes по разным причинам не подходят(в основном из-за версии Python) . Нужен работающий пример содержащий одну экспортируемую функцию(для простоты).

P.S.: Прошу не отсылать “в поиск”, “в гугл”, “читай мануалы”. Неделю уже бьюсь курю маны и исходники на C. Пока мало что вышло :(.
Lexander
В соседней ветке есть :)
http://mail.python.org/pipermail/python-list/2003-July/217228.html
GIL Larkin
о_О это вроде чистый C. Этот пример С++ компилятором точноскомпилируется?
Lexander
А какая разница. Хоть на Паскале пишите. У вас все равно есть конечный продукт - DLL.
GIL Larkin
) вы не поняли) я новичок в питоне, и я слабо представляю что и как нужно сделать чтобы dll скомпилированая mingw32 компилятором воспринялась питоном как модуль расширения. Все примеры которые я видел в интернете были на чистом С, и компилились в основном с ошибками компиляции. Был бы благодарен если бы кто-то из спецов выделил немного времени новичку и объяснил на простом примере как сделать dll модуль расширения на С++. Держу пари) не один я бы спасибо сказал.
Ferroman
Попробуйте вот это руководство и пишите конкретно, что именно не сработало.
GIL Larkin
Я не могу использовать 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
GIL Larkin
Я не могу использовать ctypes
Попробуй вместо ctypes использовать библиотеку dl.
Rodegast
http://habrahabr.ru/blogs/python/44520/

>версия Python - 1.5.2

К чему такая древность?
GIL Larkin
http://habrahabr.ru/blogs/python/44520/ - был, во первых на C, во вторых под линукс. Не компилится(((.

Lexander
http://habrahabr.ru/blogs/python/44520/

>версия Python - 1.5.2

К чему такая древность?
Что делать, есть програмка к которой нет исходников, и к ней python15.dll. И сделать с этим я ничего не могу. Приходится выкручиваться.

Lexander
Попробуй вместо ctypes использовать библиотеку dl.
попробую. Знать бы как с ней работать). +ушел в гугл+
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB