2010-11-22 8 views
6

Actualmente estoy evaluando si se puede usar una biblioteca c/C++ para un proyecto mío específico de iPhone. La biblioteca original hace un uso intensivo del código específico de Windows (por ejemplo, incluye windows.h y winsock.h). Soy consciente de que tendré que volver a escribir las partes que usan el código específico de Windows y reemplazar winsocks con, por ejemplo, sockets bsd. O intente convertir a objetivo-C++ y use apis de red específicos de IOS como se recomienda en la documentación de Apple.Uso de la biblioteca c/C++ que usa la red para el objetivo de la aplicación iphone c

Pero como resulta en la documentación de Apple, en iOS solo el código C y Objective-C está permitido para la conexión en red. "iOS admite código de red escrito en C y Objective-C". (https://developer.apple.com/library/ios/#referencelibrary/GettingStarted/GS_Networking_iPhone/)

Parece que tengo que volver a escribir toda la biblioteca en Object-C para que funcione en IOS. ¿O sería suficiente programar una clase contenedora en Object-C y trabajar con la biblioteca original (adaptada a bsd sockets api u objective-C++)? ->Using C/C++ static libraries from iPhone ObjectiveC Apps

Pero el código de red real todavía se escribiría c/C++ no objetivo-c.

¿Hay alguna posibilidad de que esto funcione? No quiero hacer todo el trabajo de adaptar la biblioteca y luego observar que este enfoque no funciona.

¿Alguien ha intentado algo similar antes?

Saludos, Mike

Respuesta

1

usted debería ser capaz de volver a escribir partes de su biblioteca de C++ para sockets BSD utiliza en lugar de la API de Windows Sockets sin ningún problema. Apple no prohíbe que el código C++ acceda a la red; sin embargo, las únicas API de red que ofrece iOS están en C (BSD sockets, CoreFundation) o Objective-C (Foundation ...), quizás esa sea la fuente de su confusión. Puede mezclar libremente el código C, C++ y Objective-C en su propio código o en bibliotecas vinculadas estáticamente.

+0

¡esa es una gran noticia! ¡muchas gracias! –

Cuestiones relacionadas