|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Mar 2005
Messaggi: 1653
|
[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? Grazie
__________________
gica78r@ncc-1701:~$ tar -c tar: Codardamente mi rifiuto di creare un archivio vuoto |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Nov 2003
Messaggi: 980
|
Boh, ma non fai prima a vedere te? Fai un file c e un file cpp e poi...
|
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Mar 2005
Messaggi: 1653
|
Quote:
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 Dovrebbe esserci un altro modo, analogo ad esempio a quello per invocare una routine assembly da C (cosa che non ho mai fatto) Ciao
__________________
gica78r@ncc-1701:~$ tar -c tar: Codardamente mi rifiuto di creare un archivio vuoto |
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Nell'header:
Codice:
#ifdef __cplusplus
extern "C" {
#endif
void funzione(char *qualcosa);
#ifdef __cplusplus
}
#endif
Codice:
extern "C" void funzione(char *qualcosa)
{
std::cout << qualcosa << std::endl;
}
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Mar 2005
Messaggi: 1653
|
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 Se puo' essere utile anche ad altri, ho appena trovato questo: How to mix C and C++ Ciao e grazie ancora dell'aiuto
__________________
gica78r@ncc-1701:~$ tar -c tar: Codardamente mi rifiuto di creare un archivio vuoto |
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Quote:
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 00:13.



















