Spiffou
Messages postés100Date d'inscriptionjeudi 1 avril 2004StatutMembreDernière intervention 9 juin 2014
-
24 janv. 2008 à 16:48
Spiffou
Messages postés100Date d'inscriptionjeudi 1 avril 2004StatutMembreDernière intervention 9 juin 2014
-
28 janv. 2008 à 10:25
Bonjour à tous,
je suis face à un problème épineux sur la transmission d'objet entre 2 DLL.
je travaille actuellement sur une dll exportant un vector dans l'une des méthodes de son interface:
std::vector<Lane> *GetListLanes()=0;
et je recupère dans ma DLL appelante la liste de Lane fournie par la DLL appelée (grace à la méthode ci-desus).
Jusqu'ici pas de problème; les ennuis commencent lorsque j'essaie d'accéder à mon vector dans la DLL appelante.
En effet, une erreur se déclenche presque à chaque fois.
Après investigation, j'ai remarqué qu'en fait l'erreur ne se produisait que lorsque la DLL appelante et la DLL appelée n'étaient pas toutes les deux compilées en Debug ou en Release.
En sommes, la STL semble de ne pas créer les vector de la même façon en Debug et en Release, ce qui me mène à ma question:
<li>pouvez vous confirmer mon analyse du problème?</li><li>peut-on via les options de compilation éviter le problème?</li>merci d'avance pour vos réponse.
ps: si vous connaissez un site où il y a des explications un peu précises sur le sujet, je suis preneur.
mezaya
Messages postés202Date d'inscriptiondimanche 18 mai 2003StatutMembreDernière intervention 6 mars 2010 26 janv. 2008 à 16:27
Salut,
oui je confirme que la majorité des container (voir tous) n'ont pas le même nombre de champ en debug et en release. Tous simplement pour pouvoir asserter des conditions d'utilisation de ces container.