View Full Version : [C/C++] Richiamare una funzione C++ da un programma C
Ciao!
Una domanda probabilmente stupida, ma alla quale non so rispondere:
posso invocare una funzione scritta in C++ da un programma scritto in C? Se si, come? :D
Grazie
Boh, ma non fai prima a vedere te? Fai un file c e un file cpp e poi...
Boh, ma non fai prima a vedere te? Fai un file c e un file cpp e poi...
:stordita:
Ho gia' provato scrivendo una funzione C++ in due files (.h e .cpp) e poi richiamandola dal main di un programma C (includendo l'header), ma cosi' ovviamente non funziona :rolleyes:
Dovrebbe esserci un altro modo, analogo ad esempio a quello per invocare una routine assembly da C (cosa che non ho mai fatto) :fagiano:
Ciao
ilsensine
03-02-2006, 08:09
Nell'header:
#ifdef __cplusplus
extern "C" {
#endif
void funzione(char *qualcosa);
#ifdef __cplusplus
}
#endif
Nel file cpp:
extern "C" void funzione(char *qualcosa)
{
std::cout << qualcosa << std::endl;
}
nb ovviamente le funzioni extern "C" non possono essere soggette a overload.
Grazie mille :)
A quanto ho capito, comunque, devo modificare tutti i file scritti in C++ per aggiungere extern "C" alle funzioni che mi interessano, e compilare anche i file C col compilatore C++. Io speravo di non doverli toccare affatto :cry:
Se puo' essere utile anche ad altri, ho appena trovato questo:
How to mix C and C++ (http://geneura.ugr.es/~jmerelo/c++-faq/mixing-c-and-cpp.html)
Ciao e grazie ancora dell'aiuto :)
ilsensine
03-02-2006, 10:53
e compilare anche i file C col compilatore C++
No questo non è necessario.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.