#c #python #swig
#c #python #swig
Вопрос:
Я новичок в C и SWIG. Это мой первый проект.
Я могу успешно создать свое расширение Python, используя distutils. Однако, когда я пытаюсь использовать свой объект, я продолжаю получать эту ошибку.
Похоже, что существует проблема с преобразованием при получении строки python и преобразовании ее в std::string.
Я работаю на Windows 7, используя Visual Studio C 2008 Express
Вот мой файл интерфейса swig
/* swig interface file */
%module Geodatabase
%{
#include Geodatabase_helper.h
%}
namespace FileGeodatabase {
class Geodatabase {
public:
Geodatabase();
Geodatabase(std::string p);
~Geodatabase();
void Open(std::string p);
void Close();
};
}
Ответ №1:
Согласно документации swig, для использования std::string
требуется %include "std_string.i"
.
%module example
%include "std_string.i"
std::string foo();
void bar(const std::string amp;x);