Bonjour à tous,
Je sais que la question a déjà été posée, j'ai fait des recherches, mais ça ne m'a pas permis de résoudre les soucis.
J'ai un programme écrit en C que je dois modifier, et dans lequel je dois utiliser une classe C++.
J'ai donc écrit ma classe normalement, et j'ai rajouté 2 fonctions (dans un fichier à part) qui permet de gérer cette classe sans en restant appelable (selon moi) depuis une source C.
le .h
et le .cpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 #ifndef _CLIENTWRAPPER_H_ #define _CLIENTWRAPPER_H_ #include "MTClient.h" static MTClient* theClient; extern "C" void initClient(); extern "C" void removeClient(); #endif
Lorsque j'inclue clientWrapper.h dans mon .c et que je compile (VC2008) j'ai cette erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 #include "clientWrapper.h" extern "C" { void initClient() { theClient = new MTClient(); theClient->run(); } } extern "C" { void removeClient() { theClient->stop(); delete theClient; } }
Je comprends pas à quoi c'est du, j'ai vérifié, VS compile bien en C++ (du moins c'est ce que je lui demande)
Code : Sélectionner tout - Visualiser dans une fenêtre à part 2>c:\program files\microsoft visual studio 9.0\vc\include\eh.h(30) : fatal error C1189: #error : "eh.h is only for C++!"
Vous auriez une idée de comment fixer le problème ?
merci d'avance !
Partager