bonsoir , j'ai des valeurs enregistrer dans un vecteuret j'ai besoin de les m�tres dans un buffer de typestd::vector<std::string>j'arrive pas a faire cette �tape.void*
merci d'avance.
bonsoir , j'ai des valeurs enregistrer dans un vecteuret j'ai besoin de les m�tres dans un buffer de typestd::vector<std::string>j'arrive pas a faire cette �tape.void*
merci d'avance.
un "void*", c'est un monstre C, qui signifie "une adresse, mais sans type sous-jacent". Il est toujours sous-entendu: "Il va falloir une conversion bien sale pour en faire quelque chose".
Tout d�pend donc de ce que ce void* est pr�cis�ment.
Ca d�pend de la fonction qui l'utilise.
Pour passer un std::vector<std::string> en void* il te faut v�rifier d�j� la porter de ton std::vector, ceci va d�finir si tu l'alloues sur le stack ou la pile ( new/delete ou pas)
Mais apr�s il faut bien comprendre que le void* tu l'utilises dans des cas tr�s pr�cis... Est-ce ton cas ici?
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9 void foo2(void* vector) { std::vector<std::string>* myVector = (std::vector<std::string>*)vector; } void foo() { std::vector<std::string> myVector; foo2((void*)&myVector); }
L'important dans ton cas c'est de savoir comment est utilis� ton void* apr�s... Est-ce un tableau de chaine de caract�re fini pas un '\0'? ce qui en a l'air...
Que sais tu exactement de ce que va faire ta fonction avec ton void* ensuite?
je suis entrains de cr�er un dll pour un syst�me d'automatisation , donc pour faire les test n�cessaire pour assurer le bon fonctionnement je doit communiquer avec le Workflow donc j'ai besoin d'envoyer un buffer au Workflow avec le ZMQ et pour faire �a mon buffer doit �tre de type (const void*) or que les donn� que je veux envoyer sont de type (std::vector<std::string>) .
zmq_send(void *s, const void *buf, size_t len, int flags);
Ce que je comprends au vu de la signature de ta fonction:
Buf est une chaine de caract�re, len est la taille de ta chaine... Donc tu n'envois pas un std::vector<std::string> mais plut�t un std::string::c_str().
Code : S�lectionner tout - Visualiser dans une fen�tre � part zmq_send(void *s, const void *buf, size_t len, int flags);
Lie la documentation de ta fonction... (http://api.zeromq.org/3-3:zmq-send) il y a m�me des exemples sur cette page trouv� en 2 secondes sur google.
Partager