2010-11-22 9 views
6

Attualmente sto valutando se una libreria c/C++ possa essere utilizzata per uno specifico progetto iPhone. La libreria originale utilizza pesantemente il codice specifico di Windows (ad esempio include windows.h e winsock.h). Sono consapevole del fatto che dovrò riscrivere le parti che usano il codice specifico di Windows e sostituire i winsock con, ad esempio, i socket bsd. Oppure prova a convertire in ogg-C++ e usa gli apis di rete specifici di IOS, come raccomandato nella documentazione di Apple.Utilizzo della libreria c/C++ che utilizza la rete per l'obiettivo dell'app iphone c

Ma come risulta dalla documentazione di Apple, in iOS solo C e il codice Objective-C sono consentiti per il networking. "iOS supporta il codice di rete scritto in C e Objective-C." (https://developer.apple.com/library/ios/#referencelibrary/GettingStarted/GS_Networking_iPhone/)

Sembra che devo riscrivere l'intera libreria in ogg-c per farlo funzionare su IOS. O sarebbe sufficiente programmare una classe wrapper in ogg-c e lavorare con la libreria originale (adattata a bsd sockets api o ogg-C++)? ->Using C/C++ static libraries from iPhone ObjectiveC Apps

Ma il codice di rete effettivo sarebbe ancora scritto c/C++ non obiettivo-c.

C'è qualche possibilità che questo potrebbe funzionare? Non voglio fare tutto il lavoro di adattamento della libreria e quindi notare che questo approccio non funziona.

Qualcuno ha provato qualcosa di simile prima?

Con i migliori saluti, Mike

risposta

1

si dovrebbe essere in grado di riscrivere parti del libreria C++ per socket BSD utilizzate al posto delle API di Windows Sockets senza problemi.

Apple non impedisce al codice C++ di accedere alla rete, tuttavia le uniche API di rete offerte da iOS sono in C (socket BSD, CoreFundation) o Objective-C (Foundation ...), forse questa è la fonte della vostra confusione. È possibile combinare liberamente codice C, C++ e Objective-C nel proprio codice o in librerie collegate staticamente.

+0

questa è una grande notizia! Grazie mille! –

Problemi correlati