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 : 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
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
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 : 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++!"
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 !