/ / Używanie biblioteki c / c ++ korzystającej z sieci dla celów aplikacji dla iPhone'a c - iphone, c ++, networking, ios, target-c ++

Używanie biblioteki c / c ++, która używa sieci do celów aplikacji dla iPhone'a c - iphone, c ++, networking, ios, target-c ++

Obecnie oceniam, czy biblioteka c / c ++ możebyć wykorzystywane do konkretnego projektu iPhone'a. Oryginalna biblioteka intensywnie wykorzystuje specyficzny dla systemu Windows kod (na przykład zawiera windows.h i winsock.h). Zdaję sobie sprawę, że będę musiał przepisać części, które używają specyficznego dla Windows kodu i zastąpić winsocks np. Gniazdami bsd. Lub spróbuj przekonwertować na cel-c ++ i używać specyficznych interfejsów sieciowych IOS, jak jest to zalecane w dokumentacji Apple.

Ale jak się okazuje w dokumentacji Apple'a, w systemie iOS dozwolony jest tylko kod C i Objective-C dla sieci. "IOS obsługuje kod sieci napisany w C i Objective-C." ( https://developer.apple.com/library/ios/#referencelibrary/GettingStarted/GS_Networking_iPhone/ )

To brzmi jak muszę przepisać całośćbiblioteka w celu-c, aby działała na IOS. Czy wystarczy zaprogramować klasę wrappera w celu-c i pracować z oryginalną (dostosowaną do biblioteki bsd socket api lub target-c ++)? -> Korzystanie z bibliotek statycznych C / C ++ z aplikacji iPhone ObjectiveC

Ale rzeczywisty kod sieciowy nadal byłby napisany c / c ++, a nie celem-c.

Czy jest jakaś szansa, że ​​to może zadziałać? Nie chcę wykonywać całej pracy związanej z adaptowaniem biblioteki, a następnie zauważyć, że to podejście nie działa.

Czy ktoś kiedyś próbował czegoś podobnego?

Z poważaniem, Mikrofon

Odpowiedzi:

1 dla odpowiedzi № 1

Powinieneś być w stanie przepisać fragmenty swojej biblioteki C ++ do używanych gniazd BSD zamiast z API gniazd Windows bez żadnych problemów.

Apple nie zabrania dostępu do kodu w C ++sieć, jednak jedyne sieciowe interfejsy API oferowane przez iOS znajdują się w C (gniazdach BSD, CoreFundation) lub Objective-C (Foundation ...), być może to jest źródłem twojego zamieszania. Możesz dowolnie mieszać C, C ++ i Objective-C kod we własnym kodzie lub w statycznie połączonych bibliotekach.