Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: ecriture sf::Packet  (Lu 2937 fois)

0 Membres et 1 Invité sur ce sujet

Milo

  • Newbie
  • *
  • Messages: 10
    • Voir le profil
    • E-mail
ecriture sf::Packet
« le: Juillet 22, 2014, 06:45:36 pm »
Bonjour,

Je suis un petit nouveau sur la SFML (et le forum par la même occasion) et je me suis donné comme objectif de réaliser une architecture client/serveur dans le cadre d'un petit jeu en réseau. J'utilisais jusqu'ici les fonctions de bases Send et Receive de la SFML 2.1  quand j'ai appris l'existence des Packet. Très bien, je vais voir la doc, les tutos, ca à l'air simple à manipuler. Mais premier test et ca ne marche pas si facilement que ce que je pensais !

J'ai simplement suivi le tuto pour l'instant avec ce code :
        sf::Packet pack;
        string pos = "1234567891011";
        pack << pos;
 
Le programme s’arrête à chaque fois sur l’écriture de pack avec cette erreur :
"Unhandled exception at at 0x7591C42D in ServeurGame.exe: Microsoft C++ exception: std::bad_alloc at memory location 0x011EF718."

Comme je n'ai pas l'impression d'avoir fait quelque chose d'exceptionnel je me tourne vers vous pour savoir ce qui cloche.

Bien cordialement,

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : ecriture sf::Packet
« Réponse #1 le: Juillet 22, 2014, 07:06:14 pm »
Tu n'as rien fait de travers en effet, donc c'est très certainement un problème d'environnement. Est-ce que tu as essayé d'autres fonctions / classes / modules ?

Tu utilises quel version de VC++ ?
Laurent Gomila - SFML developer

Milo

  • Newbie
  • *
  • Messages: 10
    • Voir le profil
    • E-mail
Re : ecriture sf::Packet
« Réponse #2 le: Juillet 22, 2014, 07:17:26 pm »
Pour l'instant de la SFML j'ai utilisé les RenderWindow, et deux/trois classes de Network, je n'avais eu aucun problème jusqu'ici.

Je ne suis pas sur de comprendre ce que tu entends par la version de VC++, j'utilise VS 2012 ce qui devrait être VC++ 11 si je ne dis pas de bêtises.

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : ecriture sf::Packet
« Réponse #3 le: Juillet 22, 2014, 08:11:28 pm »
Tu as bien téléchargé la version de SFML pour Visual Studio 2012 ? Tu ne mélanges pas debug et release ?
Laurent Gomila - SFML developer

Milo

  • Newbie
  • *
  • Messages: 10
    • Voir le profil
    • E-mail
Re : ecriture sf::Packet
« Réponse #4 le: Juillet 22, 2014, 08:52:21 pm »
Non j'ai bien fait attention à télécharger la bonne version.
Ha par contre je crois bien que je mélange le debug et release !

Hop, après un saut temporel ( 1 seconde de lecture pour vous et 5mn de recherche pour moi), je vous confirme un méli mélo des inputs dans les propriétés de mon projet. Je précise la solution pour ceux qui ont/auront le même problème : dans la config debug des inputs le nom des lib est du type "-d" contrairement à ceux de la config release.

Merci Laurent !

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : ecriture sf::Packet
« Réponse #5 le: Juillet 22, 2014, 10:45:32 pm »
Citer
Je précise la solution pour ceux qui ont/auront le même problème :
lire le tutoriel :D
Laurent Gomila - SFML developer

Milo

  • Newbie
  • *
  • Messages: 10
    • Voir le profil
    • E-mail
Re : ecriture sf::Packet
« Réponse #6 le: Juillet 23, 2014, 12:17:39 am »
*Mieux lire le tutoriel  ;D

je pensais pas avoir un problème la dessus, comment se fait-il que j'ai pu tout de même utiliser les autres fonctionnalités de la SFML sans avoir d'erreur avant ?

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : ecriture sf::Packet
« Réponse #7 le: Juillet 23, 2014, 07:36:40 am »
Le mix debug/release ne fonctionne pas (particulièrement avec VC++) car certaines classes ont des membres en plus en debug (ici : std::string), pour aider au debugging. Donc la définition de ces classes est différente en debug et en release, ce qui provoque des crashs quand on les mélange au runtime. Mais à part ça, pas de raison d'avoir d'autres erreurs. D'ailleurs avec gcc il est fort probable que tu puisses faire ce mélange sans problème.
Laurent Gomila - SFML developer

 

anything