Possible Duplicate:
How to call a lib written in C++ from C?Comment appeler une fonction C++ à partir de C?
Je bricoler avec pHash et je veux appeler la fonction pour générer un hachage perceptive de l'emplacement du fichier. Quand je tente d'appeler la fonction appelée ph_dct_imagehash le compilateur jette cette erreur:
/usr/include/CImg.h:72:18: fatal error: cstdio: No such file or directory
compilation terminated.
À ce stade, je me rends compte que phash est écrit en C++, donc y compris C++ en-têtes dans un programme C ne va pas au travail. Néanmoins, la fonction elle-même semble pouvoir être appelée par C car aucun de ses paramètres ni sa valeur de retour n'utilisent des constructions C++. Y at-il un bon moyen d'appeler la fonction C++ ph_dct_imagehash de C?
Note: Je fais cela principalement pour améliorer mon travail en C (pas en C++). C'est pourquoi je me limite à C.
Sauf si le code que vous essayez de compiler utilise des mots réservés en C++, tels que new, class, typename, etc Et si vous avez plusieurs milliers de lignes de code, que vous voulez seulement en accrocher une petite partie en C++, cela pourrait très bien être un problème. –
+1 @MatsPetersson. Ma bête noire personnelle est tout le casting autour de 'malloc'. "Fixer" tout cela peut être une corvée. –