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 :
le tlh genere:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 HRESULT Cars([out, retval] Cars** prop); HRESULT CarsForUser([in] Well well, [out, retval] Cars** prop);
mon implementation dans le .h :
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
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;
j'obtiens: error C2061: syntax error : identifier 'Cars'
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 STDMETHOD(get_Cars)(Cars* * prop); STDMETHOD(get_CarsForSource)(Well * well,Cars * * prop); // error here
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!
Partager