2010-11-22 3 views
6

현재 특정 iPhone 프로젝트에 c/C++ 라이브러리를 사용할 수 있는지 평가 중입니다. 원래 라이브러리는 windows 특정 코드를 많이 사용합니다 (예 : windows.h 및 winsock.h 포함). Windows 특정 코드를 사용하는 부품을 다시 작성하고 예를 들어 bsd 소켓과 함께 winsock을 교체해야한다는 것을 알고 있습니다. 또는 objective-C++로 변환하려고 시도하고 Apple의 설명서에서 권장하는대로 IOS 특정 네트워킹 API를 사용하십시오.iphone app objective c에 네트워크를 사용하는 c/C++ 라이브러리 사용

하지만 애플의 문서에서 밝혀진 바와 같이, iOS에서는 네트워킹에만 C 및 Objective-C 코드가 허용됩니다. "iOS는 C 및 Objective-C로 작성된 네트워킹 코드를 지원합니다." (https://developer.apple.com/library/ios/#referencelibrary/GettingStarted/GS_Networking_iPhone/)

IOS에서 작동하도록 목표 라이브러리 전체 라이브러리를 다시 작성해야하는 것처럼 들립니다. 아니면 objective-c에서 래퍼 클래스를 프로그래밍하고 원래의 (bsd 소켓 api 또는 objective-C++ 라이브러리에 맞게) 라이브러리로 작업하는 것으로 충분합니까? ->Using C/C++ static libraries from iPhone ObjectiveC Apps

실제 네트워킹 코드는 여전히 c/C++가 아니라 objective-c로 작성됩니다.

정상적으로 작동 할 가능성이 있습니까? 저는 도서관을 개조하는 모든 일을하고 싶지 않고이 접근법이 효과가 없다는 것을 알아 차리고 싶습니다.

누구나 전에 비슷한 것을 시도 했습니까?

안부, 마이크

답변

1

대신 윈도우의 사용 BSD 소켓에 C++ 라이브러리의 일부를 재 작성 할 수 있어야한다 아무 문제없이 API 소켓.

Apple은 C++ 코드가 네트워크에 액세스하는 것을 금지하지 않지만 iOS에서 제공하는 유일한 네트워킹 API는 C (BSD 소켓, CoreFundation) 또는 Objective-C (Foundation ...)에있을 수 있습니다. 혼란의 원인 일 수 있습니다. 자신의 코드 또는 정적으로 링크 된 라이브러리에서 C, C++ 및 Objective-C 코드를 자유롭게 혼합 할 수 있습니다.

+0

좋은 소식입니다. 대단히 감사합니다! –

관련 문제