2010-11-22 12 views
6

Obecnie analizuję, czy biblioteka c/C++ może być używana 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 obiekt-C++ i używać specyficznych interfejsów sieciowych IOS, tak jak jest to zalecane w dokumentacji Apple.Używanie biblioteki c/C++ korzystającej z sieci do celów aplikacji dla iPhone'a c

Ale jak się okazuje w dokumentacji Apple, w systemie iOS dozwolone jest tylko C i kod 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 tak, jakbym musiał przepisać całą bibliotekę 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++)? ->Using C/C++ static libraries from iPhone ObjectiveC Apps

Ale rzeczywisty kod sieciowy nadal byłby napisany c/C++, a nie obiekt-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ś próbował już czegoś podobnego?

poważaniem, Mike

Odpowiedz

1

powinien być w stanie przepisać części swojej biblioteki C++ do używanych gniazd BSD zamiast Windows API gniazd bez żadnych problemów.

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

+0

to dobra wiadomość! Dziękuję Ci bardzo! –

Powiązane problemy