|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Oct 2002
Città: Roma
Messaggi: 1502
|
Invocare da un file C una funzione di un file C++
Salve, c'è un modo per invocare da un file C compilato con gcc una funzione (globale, non di una classe) che è definita in un file compilato con g++? Il contrario lo si puo fare dichiarando le funzioni C con extern "C"; quello che voglio io si puo fare?
__________________
Sun Certified Java Programmer EUCIP Core Level Certified European Certification of Informatics Professionals |
![]() |
![]() |
![]() |
#2 |
Bannato
Iscritto dal: Jul 2000
Città: Malo (VI)
Messaggi: 1000
|
La mia puo' apparire una risposta ovvia, ma hai provato con
Codice:
extern "C++" ![]() Battute a parte dovrebbe funzionare proprio cosi' (almeno col gcc), ma non l'ho mai provato. |
![]() |
![]() |
![]() |
#3 |
Member
Iscritto dal: Jun 2004
Città: Pecetto
Messaggi: 73
|
La definizione che si deve fare è tipo la seguente
extern "C" bool __stdcall MyFunction(parametrs) { . . . . return true; } per evitare la tipica "decorazione C++" a livello di globale
__________________
Gianni |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Oct 2002
Città: Roma
Messaggi: 1502
|
ha funzionato, ma invece di usare
__stdcall che mi dava errore in fase di compilazione ho dovuto usare __attribute__((__stdcall__)) (sono sotto linux con gcc)
__________________
Sun Certified Java Programmer EUCIP Core Level Certified European Certification of Informatics Professionals |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Oct 2002
Città: Roma
Messaggi: 1502
|
facendo un po di prove ho visto che basta
extern "C" prima della definizione della funzione nel file c++ perchè questa possa essere chiamata da un file C; i vari file oggetti engono linkati come moduli c++
__________________
Sun Certified Java Programmer EUCIP Core Level Certified European Certification of Informatics Professionals |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 22:50.