vector dans com?

vector dans com? - C++ - Programmation

Marsh Posté le 17-07-2002 à 22:28:49    

sous vc++6 lorsque j'ajoute une méthode dans une interface,
j'essaye de mettre comme paramètre:
[in] cstring titre, [in] cstring realisateur, [in] cstring acteur, [in] cstring type,[out] vector<cstring> v
 
sauf que vc me dit Template declaration or definition
cannot be added
 
quelqu'un a une solution?


---------------
Borland rulez: http://pages.infinit.net/borland
Reply

Marsh Posté le 17-07-2002 à 22:28:49   

Reply

Marsh Posté le 18-07-2002 à 01:35:16    

C'est pas du C++ ce que tu montres.
Soit plus clair.


---------------
Bricocheap: Montage de ventilo sur paté de mastic silicone
Reply

Marsh Posté le 18-07-2002 à 02:19:16    

si tu aurais lu le titre 2 sec, tu aurais su que j'essaye de mettre un vector dans com sous vc++ mais que ça ne fonctionne pas


---------------
Borland rulez: http://pages.infinit.net/borland
Reply

Marsh Posté le 18-07-2002 à 02:27:38    

os2 a écrit a écrit :

si tu aurais lu le titre 2 sec, tu aurais su que j'essaye de mettre un vector dans com sous vc++ mais que ça ne fonctionne pas




 
Je ne saurais pas trop t'aider car j'utilise des COMposants mais j'en ai jamais programmé par moi-même.
 
Mais j'ai juste une idée : peut être peux tu simplement remplacer le vector<CString> par un CStringArray ?


Message édité par smaragdus le 18-07-2002 à 02:32:58
Reply

Marsh Posté le 18-07-2002 à 02:57:56    

merci beaucoup je vais regardé de ce côté là
 
reste que c'est pas évident les éléments dynamique avec com :(


---------------
Borland rulez: http://pages.infinit.net/borland
Reply

Marsh Posté le 18-07-2002 à 06:38:10    

on ne peut utiliser les cstring dans un com on dirait  :heink:  
donc je les ai remplacé par un LPOLESTR, je ferais ensuite un cast...
 
mais pour le CStringArray je remplace ça par quoi?
car j'ai une erreur du genre
 
error MIDL2025 : syntax error : expecting a type specification near "CStringArray"


---------------
Borland rulez: http://pages.infinit.net/borland
Reply

Marsh Posté le 18-07-2002 à 20:02:16    

:bounce:


---------------
Borland rulez: http://pages.infinit.net/borland
Reply

Marsh Posté le 19-07-2002 à 03:00:48    

os2 a écrit a écrit :

si tu aurais lu le titre 2 sec, tu aurais su que j'essaye de mettre un vector dans com sous vc++ mais que ça ne fonctionne pas


Au temps pour moi, j'avais pas pigé parce que j'ai jamais utilisé "com".
 
Donc, je ne peut pas t'aider... sorry.
Au pif, essaye:
-typedef pour masquer le patron.
-dériver une classe pour encapsuler le patron.


---------------
Bricocheap: Montage de ventilo sur paté de mastic silicone
Reply

Marsh Posté le 19-07-2002 à 13:20:30    

os2 a écrit a écrit :

on ne peut utiliser les cstring dans un com on dirait  :heink:  
donc je les ai remplacé par un LPOLESTR, je ferais ensuite un cast...
 
mais pour le CStringArray je remplace ça par quoi?
car j'ai une erreur du genre
 
error MIDL2025 : syntax error : expecting a type specification near "CStringArray"
 




 
Pour utiliser les CString & CStringArray, il faut que le composant utilise les MFC.

Reply

Marsh Posté le 19-07-2002 à 14:23:15    

os2 a écrit a écrit :

on ne peut utiliser les cstring dans un com on dirait  :heink:  
donc je les ai remplacé par un LPOLESTR, je ferais ensuite un cast...
mais pour le CStringArray je remplace ça par quoi?
car j'ai une erreur du genre
error MIDL2025 : syntax error : expecting a type specification near "CStringArray"




 
dans ton interface les types de parametres doivent
etre des types "publiques" au sens de COM.
Il y a un certain nombre de types definis en standard
comme les BSTR pour les chaines.
Pour les listes de chaines, j'ai rencontre un probleme similaire
en fait Delphi proposait un IStringList derivé de ses TStringList mais qui necessitait
une intervention sur la machine hote (sinon IStringList inconnu au bataillon sans l'aide de Delphi/Borland).
En fait j'ai simplement encodé ma liste de chaines dans une seule chaine sous forme de "comma text" (chaines separees par des virgules), mais je ne sais pas si l'equivalent existe pour VC++ (a part en le codant soi-meme).
 
LeGreg

Reply

Marsh Posté le 19-07-2002 à 14:23:15   

Reply

Marsh Posté le 20-07-2002 à 00:29:22    

legreg a écrit a écrit :

 
 
dans ton interface les types de parametres doivent
etre des types "publiques" au sens de COM.
Il y a un certain nombre de types definis en standard
comme les BSTR pour les chaines.
Pour les listes de chaines, j'ai rencontre un probleme similaire
en fait Delphi proposait un IStringList derivé de ses TStringList mais qui necessitait
une intervention sur la machine hote (sinon IStringList inconnu au bataillon sans l'aide de Delphi/Borland).
En fait j'ai simplement encodé ma liste de chaines dans une seule chaine sous forme de "comma text" (chaines separees par des virgules), mais je ne sais pas si l'equivalent existe pour VC++ (a part en le codant soi-meme).
 
LeGreg




 
tu connais un site pour avoir de l'info sur com...
j'aimerais bien avoir une liste de type accepté comme paramètre


---------------
Borland rulez: http://pages.infinit.net/borland
Reply

Marsh Posté le 21-07-2002 à 21:39:18    

je ne sais pas, les types que j'utilise sont des types
predefinis par Borland style widestring ou wordbool
et des types persos (donc crees par nos soins).
 
Essaie la doc MSDN, il doit y avoir tout ce qu'il
faut sur COM.
 
LeGreg

Reply

Marsh Posté le 22-07-2002 à 22:02:33    

j'ai des problèmes de conversion dans mon com
 
strTrouve est un pointeur sur un LPOLESTR
v_Titre est un CSTRING
 
*strTrouve =  *strTrouve + *LPOLESTR(v_Titre);
 
j'ai l'erreur
error C2440: 'type cast' : cannot convert from 'class CString' to 'unsigned short *'
 
j'utilise beaucoup les cstsring dans le com, donc je ne peux changer le type de v_titre
comment résoudre ça...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed