2014-01-31 1 views
0

일부 데이터 (int 배열)를 처리하기 위해 Python을 사용하고있었습니다. 그것은 매우 느립니다. 그래서 처리 함수를 C++ DLL에 넣고 ctypes를 통해 처리 함수를 호출합니다. 데이터는 swig-wrapped 모듈에서로드됩니다 (C++). 거의 모든 곳을 탐색했지만 'int *'유형의 swig 객체를 ctypes int 포인터로 변환하는 데 아무 것도 발견하지 못했습니다. 내가 어떻게 해?'int *'유형의 swig 객체를 ctypes int로 변환하는 방법 *

감사

+0

C 및 C++에서 포인터는 항상 숫자입니다. 정확히 말하자면 메모리 주소를 저장할만큼 충분히 큰 정수 타입으로 앨리어싱 된 플랫폼 의존형 별칭 인 intptr_t 유형입니다. 그래서 ... 그냥 직접 전달하지 않는 이유는 무엇입니까? 두 경우 모두 숫자입니다. – refi64

+0

직접 전달하는 경우 잘못된 데이터 주소를 가져 왔습니다. 데이터 배열의 시작 부분을 제외한 모든 곳. – user3255712

답변

0

해결책이 그 후 몇 가지 시도를하지 않는다 보인다. 이 문제를 해결하는 간단한 방법은 SWIG로 C++ 코드를 래핑하는 것이므로 다른 SWIG로 래핑 된 모듈로 전달할 수 있습니다.

관련 문제