vector dans com? - C++ - Programmation
Marsh Posté le 18-07-2002 à 01:35:16
C'est pas du C++ ce que tu montres.
Soit plus clair.
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
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 ?
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
Marsh Posté le 18-07-2002 à 06:38:10
on ne peut utiliser les cstring dans un com on dirait
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"
Marsh Posté le 18-07-2002 à 20:02:16
ReplyMarsh 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.
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 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.
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 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
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
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
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...
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