#import Directive collision problem , error C2061
Bonjour,
Je crois que j'ai un probleme de collision. Je m'explique.
J'ai deux inetrfaces dans mon idl : Cars et Garage.
Dans Garage j'ai deux proprietes :
Code:
1 2
| HRESULT Cars([out, retval] Cars** prop);
HRESULT CarsForUser([in] Well well, [out, retval] Cars** prop); |
le tlh genere:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| Garage : IDispatch
{
//
// Property data
//
__declspec(property(get=GetCars))
CarsPtr Cars;
__declspec(property(get=GetCarsForUser))
CarsPtr CarsForUser[];
//
// Wrapper methods for error-handling
//
CarsPtr GetCars ( );
CarsPtr GetTrendsForUser (
struct Well * Well );
//
// Raw methods provided by interface
//
virtual HRESULT __stdcall get_Cars (
/*[out,retval]*/ struct Cars * * prop ) = 0;
virtual HRESULT __stdcall get_CarsForUser (
/*[in]*/ struct Well * Well,
/*[out,retval]*/ struct Cars * * prop ) = 0; |
mon implementation dans le .h :
Code:
1 2
| STDMETHOD(get_Cars)(Cars* * prop);
STDMETHOD(get_CarsForSource)(Well * well,Cars * * prop); // error here |
j'obtiens: error C2061: syntax error : identifier 'Cars'
Le probleme est que j'ai une double definition de "Cars":
une dans mon inteface (coloré en bleu)
et une dans le tlh généré: en rouge
J 'ai essayé plusieurs options dans le stdafx.h
rename("Cars","CarsX")
mais ca donne rien
J'ai renommé mon idl Cars en CarsX et la ca marche...mais bien entendu je veux utiliser le nom
Cars et nonCarsX
Ma question :
Y a t il une solution a ce probleme? en fait j'aimerais trouver
soit :
1- le moyen de renommer Cars du tlh
2- soit de que la compilation ne genere pas les Property data mais seulement les Wrapper methods for error-handling
une idée? merci!