2010-11-22 5 views
6

J'évalue actuellement si une bibliothèque c/C++ peut être utilisée pour un projet iPhone spécifique. La bibliothèque d'origine fait un usage intensif du code spécifique à Windows (par exemple, elle inclut windows.h et winsock.h). Je suis conscient que je devrai réécrire les parties qui utilisent le code spécifique de Windows et remplacer les winsocks avec par exemple des sockets bsd. Ou essayez de convertir en Objective-C + + et d'utiliser des API de mise en réseau spécifiques à IOS comme il est recommandé dans la documentation d'Apple.Utilisation de la bibliothèque c/C++ utilisant le réseau pour l'application de l'application iphone c

Mais comme il se trouve dans la documentation d'Apple, dans iOS, seuls les codes C et Objective-C sont autorisés pour la mise en réseau. "iOS prend en charge le code réseau écrit en C et Objective-C." (https://developer.apple.com/library/ios/#referencelibrary/GettingStarted/GS_Networking_iPhone/)

Cela sonne comme si je devais réécrire toute la bibliothèque dans l'objectif-c pour le faire fonctionner sur IOS. Ou serait-il suffisant de programmer une classe wrapper dans objective-c et de travailler avec la librairie originale (adaptée à la bibliothèque bsd sockets api ou objective-C++)? ->Using C/C++ static libraries from iPhone ObjectiveC Apps

Mais le code de réseau actuel serait toujours écrit c/C++ pas objectif-c.

Y a-t-il une chance que cela fonctionne? Je ne veux pas faire tout le travail d'adaptation de la bibliothèque et ensuite remarquer que cette approche ne fonctionne pas.

Quelqu'un at-il déjà essayé quelque chose de similaire?

Cordialement, Mike

Répondre

1

Vous devriez être en mesure de réécrire certaines parties de votre bibliothèque C++ pour les sockets BSD utilisés à la place de l'API sockets Windows sans aucun problème. Apple n'interdit pas au code C++ d'accéder au réseau, cependant les seules API de mise en réseau proposées par iOS sont soit C (sockets BSD, CoreFundation) ou Objective-C (Foundation ...), d'où votre confusion. Vous pouvez mélanger librement du code C, C++ et Objective-C dans votre propre code ou dans des bibliothèques liées statiquement.

+0

c'est une excellente nouvelle! Merci beaucoup! –

Questions connexes