Obective-C et bibliothèque C++
GeenuX
Membre
Malgré les différentes lectures que j'ai pu faire, je n'ai pas trouver la réponse à la question suivante :
Est ce qu'il est possible d'appeler des fonctions d'une bibliothèque en C++ dans du du code objective-C ?
Est ce que l'on pert en performance ? Est ce que c'est compliqué à faire sous XCode ?
Et surtout la question la plus compliqué ... Comment est ce que l'on fait ?
Merci beaucoup ...
Est ce qu'il est possible d'appeler des fonctions d'une bibliothèque en C++ dans du du code objective-C ?
Est ce que l'on pert en performance ? Est ce que c'est compliqué à faire sous XCode ?
Et surtout la question la plus compliqué ... Comment est ce que l'on fait ?
Merci beaucoup ...
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Ce n'est pas difficile. Il suffit d'importer tes headers comme tu le ferais en C++. Tu dois par contre mettre l'extension .mm à tes fichiers. Mais tu ne peux pas accéder à des objets C++ à partir d'objets Obj-C et vice-versa. Les seuls types possibles "d'échanges" entre ces deux familles sont ceux permis par l'ancêtre commun: le C.
Ben normalement tu peut mélanger les deux depuis la Mà J du SDK de Novembre 2001 (il ont appelé ca l'[url=http://developer.apple.com/documentation/Cocoa/Conceptual/ObjectiveC/LanguageOverview/chapter_3_section_10.html<br />]Objective-C++[/url])..
Ceci dit j'ai jamais expérimenté..
On nous aurai menti?
alors voilà , j'ai un code C pour piloter un afficheur LCD, que j'ai fait pour Linux il y a un an. je viens de l'adapter, il marche nickel avec mon mac.
mais comment ça se passe pour mélanger le C (ANSI/POSIX) et l'ObjC? en l'occurence je veux récupérer le titre de la chanson en cours sur iTunes (AppleScript) et l'afficher sur mon afficheur VFD. j'ai déjà les deux morceaux de soft (l'autre est un tuto nommé "Recent Tunes" que j'ai récupéré il y a un moment).
dois-je faire des fichiers différents, ou est ce que je peux mettre u code C en plein milieu d'un fichier ObjC?
merci d'avance,
joPap
Tu peux mélanger C et Objective-C dans les mêmes fichiers. Je le fais constamment, et ça ne pose aucun problème.
Par exemple, voici l'aspect d'un fichier .h :
et celui du .m :
Dans ces exemples, tu vois qu'on peut même mixer de l'objective-C au sein du code écrit en C.
.
mais j'ai encore un soucis avec mon code C, si je vire une des deux lignes "inutiles" (l. 8), ça ne marche plus! je comprend vraiment pas, je pense avoir initialisé toutes mes variables...
Tu pourrais nous passer le message du compilo, ca serait plus facile
??? Ouais, ca doit etre un truc de memoire.
Quid de la console ? Elle doit bien retourner un message qui dit qu'il y a un probleme.
Et si tu nous envoyait ton code ?? Le projet lui-meme m'interesse.
dans le .h j'ai juste les prototypes, les symboles et les #includes de bibliothèques. c'est un miniprog de test que j'ai fait, je ne veux pas l'inclure dans du Cocoa tant que j'ai pas compris où est la merdouille...
d'autre part je pense pas que la console dise quoi que ce soit: le prog ne plante pas, simplement soit il affiche n'importe quoi, soit il affiche rien du tout!
je veux compreeeendre
- ou est definie la structure termios ?
- a quoi correspondent les fonctions cfmakeraw(), cfsetospeed(), tcsetattr() et usleep() ?
En fait, ca serait vachement sympa de mettre a notre dispo le fichier .h STP ::)
Je suis pas sur de te rendre service, j'ai deja a creer un objet qui gere les matrices, mpergand va m'engueuler si je fais queqchose d'autre en meme temps
Dans un mois, j'ai de la place dans mon agenda
termios et compagnie sont dans termios.h je crois... tout ça je l'ai appris dans un PDF qui s'appelle POSIX Serial Programming. en tout cas je les ai pas inventées
usleep() c'est un sleep en microsecondes, c'est une fonction de base du C non?
voici le code:
joPap-LCD.h
joPap-LCD.c
demain, je passe à l'intégration de ce code à ByteController.
ciao
j'ai bien intégré mon code C au projet Xcode.
mais comment appeler mes fonctions C depuis le code ObjC???
je suis joignable sur iChat (josephpapier) et MSN si c'est lourd à expliquer comme ça.
Merci d'avance,
joPap
[edit]
ça marche!
merci à WIMP pour son aide
prochaine étape, l'intégrer non pas au tutorial RecentTunes, mais carrément à ByteController.
[edit2]
la suite de mon projet ici:
http://www.objective-cocoa.org/forum/index.php?topic=604.0