2012-10-02 4 views
1

내 C++ 코드로 무효 * 기능 매개 변수를 치료하기 위해 꿀꺽 꿀꺽를 사용하는 방법 : 입력 매개 변수로,파이썬 문자열 여기

struct Impl 
{ 
    DT* data_ptr_; 

    Impl(void* data_ptr) 
    : data_ptr_((DT*)data_ptr) 
    { 
    //do something to decipher data 
    } 
}; 

IMPL 클래스는 무효 포인터 소요가.

은 내가 매개 변수로 단지 (파이썬 2.x에서의 이진 문자열) 파이썬 문자열을 전달되고 싶지 :

data = "I'm a stirng data!" 
impl = Impl(data) 

그러나 꿀꺽 꿀꺽 모듈을 생성하는 내가 '이

TypeError: in method 'new_Impl', argument 1 of type 'void *' 

제기 swig를 처음 접했고 SWIG 문서를 하루 종일 검색했습니다. 나를 위해 유일하게 작용 한 것은 swig 문서 8.3 C 문자열 처리에 있습니다. 하지만 제 함수는 실제로 크기 정수를 사용하지 않습니다.

내 문제는 다소 단순하다고 생각합니다. 뭔가 놓쳐 야합니다. 제발 도와주세요.

감사합니다.

답변

4

해결책을 직접 찾았습니다.

I는 입력으로 무효 * 포인터를 필요에 따라 :

%typemap(in) void* = char*; 

이 트릭을 할 것입니다.

Swig accept char * 매개 변수를 문자열 유형으로 사용하고 void *를 포인터로 사용합니다. char * 입력 형식을 사용하면됩니다.