Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 4, 2013 09:42:58

khalikov
Зарегистрирован: 2013-09-04
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Segmentation fault при вызове PyString_AsString

Вот такой код на С++

//quicktest.cpp
extern "C" 
{
    int test1(PyObject *src)
	{
		char *src1 = PyString_AsString(src);
		return 0;
	}
}
Python
import ctypes
test_lib = ctypes.CDLL('./quicktest.so');
test_lib.test1("test");
вызывается segmentation fault, gdb говорит, что в функции PyString_AsString() (ну в принципе больше и негде)
Что я делаю не так?

P.S. python = 2.7, linux 64 bit

Отредактировано khalikov (Сен. 4, 2013 10:04:29)

Офлайн

#2 Сен. 4, 2013 12:30:12

khalikov
Зарегистрирован: 2013-09-04
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Segmentation fault при вызове PyString_AsString

Задал вопрос на SO, получил ответ: ошибка в объявлении (PyObject *). Должно быть char *, поскольку для целых чисел, строк и bytes питон сам переводит объект в нужный.

Офлайн

#3 Сен. 5, 2013 21:46:35

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

Segmentation fault при вызове PyString_AsString

khalikov
питон сам переводит
Правильно сказали. Только не питон а модуль ctypes



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version