Windows에서 SWIG를 사용하여 64 비트 응용 프로그램을 작성하고 싶습니다. 버퍼에 포인터가있는 클래스가 있고 .NET 클래스와 인터페이스하기 때문에 포인터는 intptr_t
으로 선언됩니다.SWIG가 Windows에서 intptr_t에 64 비트 정수를 사용하는 방법
문제는 표준 SWIG stdint.i
가 intptr_t
어느 int
(32 비트 환경에서) 또는 long
(64 비트 환경에서) 인 것으로 가정한다는 것이다. 유닉스에서는 이것이 사실이지만, 윈도우에서는 거짓이다. 누구도 이와 비슷한 경험이나 아이디어를 가지고이 문제를 해결할 방법을 찾고 있습니까?
intptr_t
=>IntPtr
변환에 필요한 typemaps를 이미 설정했으며 32 비트 환경에서는 정상적으로 작동하지만 64 비트 환경에서는 포인터가 잘립니다.