Intégration de code C++ dans un programme en C
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
Code:
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 |
et le .cpp
Code:
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;
}
} |
Lorsque j'inclue clientWrapper.h dans mon .c et que je compile (VC2008) j'ai cette erreur :
Code:
2>c:\program files\microsoft visual studio 9.0\vc\include\eh.h(30) : fatal error C1189: #error : "eh.h is only for C++!"
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)
Vous auriez une idée de comment fixer le problème ?
merci d'avance !