Bonjour à tous !
J'ai un problème particulier avec GSOAP.
Lorsque j'envoie un message via GSOAP et que ça se passe bien, je n'ai pas de soucis.
Par contre lorsqu'il y a une erreur (typiquement : pas de serveur en face), GSOAP m'affiche le contenu du message XML envoyé et après ça lorsque je fais des affichages avec std::wcout (je suis en Unicode sous Visual Studio 2012) mes messages sont un espace intercalé entre chaque lettre :
Dans ce pavé on voit d'abor le résultat d'un affichage avant de rencontrer l'erreur GSOAP puis l'affichage après l'erreur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48 [INFO] Simulator received a message ... a request ... MVConnect Coucou Coucou Simili SPV received a message Message Type : ConnectEquipment Message Type : 8 Id : 228 Direction : 1 Timeout : 5000 Status Code : 0 Label : Description : Parameters [Equipment_id] => 128 [Equipment_type] => Aria.PositionControl.MachineVision [Module_id] => MV Send each message after being disconnected Testing Status command [DEBUG] Execute command[Id=129] <?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://www.w3.org/2003/05/soap-envelope" xmlns:SOAP-ENC="http://www.w3.org/2003/05/soap-encoding" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns="urn:Ranger"><SOAP-ENV:Body><ns:handle SOAP-ENV:encodingStyle="http://www.w3.org/2003/05/soap-encoding"><in xsi:type="CMachineVisionSoapMsgRequestStatus"><messageId>129</messageId><retryCount>0</retryCount><moduleId>128</moduleId><status><status>0</status><msgErr></msgErr></status></in></ns:handle></SOAP-ENV:Body></SOAP-ENV:Envelope> [ E R R O R ] A r i a . P o s i t i o n C o n t r o l . M a c h i n e V i s i o n | 1 2 8 : M a c h i n e V i s i o n P o s i t i o n C o n t r o l p l u g i n e n c o u n t e r e d a c o m m u n i c a t i o n e r r o r [ E R R O R ] S O A P e r r o r - 1 w h i l e s e n d i n g R e q u e s t Coucou C o u c o u S i m i l i S P V r e c e i v e d a m e s s a g e M e s s a g e T y p e : S t a t u s P o s i t i o n C o n t r o l m e s s a g e t y p e : S t a t u s ( 9 ) M e s s a g e T y p e : 8 I d : 2 2 9 D i r e c t i o n : 1 T i m e o u t : 5 0 0 0 S t a t u s C o d e : - 6 1 1 0 0 2 0 0 1 L a b e l : A r i a . P o s i t i o n C o n t r o l . M a c h i n e V i s i o n | 1 2 8 D e s c r i p t i o n : M a c h i n e V i s i o n P o s i t i o n C o n t r o l p l u g i n e n c o u n t e r e d a c o m m u n i c a t i o n e r r o r P a r a m e t e r s [ E q u i p m e n t _ i d ] = > 1 2 8 [ E q u i p m e n t _ t y p e ] = > A r i a . P o s i t i o n C o n t r o l . M a c h i n e V i s i o n [ M o d u l e _ i d ] = > M V S t a t u s : 0 G u i d e T u b e s : ( 0 )
Vous remarquerez la présence du mot "Coucou" qui apparait 2 fois, je l'affiche une fois avec std::cout et la seconde fois avec std::wcout.
En affichage correct rien à dire, par contre quand j'ai mon problème, on remarque que le premier (celui via std::cout) s'affiche correctement...
Est-ce que ça parle à quelqu'un ?
Y a-t-il un moyen de configurer les flux de manière à virer ces espaces superflus ? (j'ai essayé std::ios::skipws sans succès)
Merci d'avance !
Partager