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.
попробую. Знать бы как с ней работать). +ушел в гугл+