Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1942 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [C++ Managé Managed] : String->Length vers int : incohérence valeurs

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C++ Managé Managed] : String->Length vers int : incohérence valeurs

n°1350519
Sagoth
:|
Posté le 20-04-2006 à 14:59:49  profilanswer
 

Bonjour à tous.
Je viens de remarquer un truc pour le moins étrange.
Dans un projet c++ managé, j'ai les instructions suivantes :

Code :
  1. String* s = new String(bufData); // Ok, j'ai une string s qui va bien
  2. int longueur = s->Length // s->Length "m'affiche" bien la longueur de s (en débug avec espion).


 
Par contre, à ce stade, la variable "longueur" prend systématiquement la valeur "1025", qq soit la s->Length.
 
Qqun aurait'il une explication à ce sujet ??
C'est d'autant plus étrange qu'il n'y a pas de cast "apparent", Length renvoyant un int !?

Message cité 1 fois
Message édité par Sagoth le 20-04-2006 à 15:01:05
mood
Publicité
Posté le 20-04-2006 à 14:59:49  profilanswer
 

n°1350532
Sve@r
Posté le 20-04-2006 à 15:15:10  profilanswer
 

Sagoth a écrit :

Bonjour à tous.
Je viens de remarquer un truc pour le moins étrange.
Dans un projet c++ managé, j'ai les instructions suivantes :

Code :
  1. String* s = new String(bufData); // Ok, j'ai une string s qui va bien
  2. int longueur = s->Length // s->Length "m'affiche" bien la longueur de s (en débug avec espion).


 
Par contre, à ce stade, la variable "longueur" prend systématiquement la valeur "1025", qq soit la s->Length.
 
Qqun aurait'il une explication à ce sujet ??
C'est d'autant plus étrange qu'il n'y a pas de cast "apparent", Length renvoyant un int !?


 
Pour éviter toute pollution, tu devrais essayer avec :

Code :
  1. String* s = new String("toto" );


Après-tout, on ne sait pas ce que contient "bufData"...


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
n°1350562
Sagoth
:|
Posté le 20-04-2006 à 15:41:06  profilanswer
 

Oui, avec une chaine "en dur" comme ton exemple, ca marche.
 
En fait il me renvoie la taille de mon bufData déclaré (et non la taille des données dans celui ci), une sorte de sizeOf.
 
Si l'on admet qu'il me renvoit cette espece de sizeOf et non la "longueur", il est quand meme étonnant que l'espion m'indique une longueur correcte et que la sauvegartde de cette longueur correcte dans un int se transforme en un sizeOf de mon bufData :O
 
Soit c'est l'espion du debugger qui a du mal, soit c'est encore un truc tordu du managé.
 
PS: pour info mon buf data est défini et instancié de la sorte :

Code :
  1. System::Char  bufData[];    // dans le .h
  2. __gc new System::Char[1024+1];  // instancié.


 
 
 

n°1350724
Sve@r
Posté le 20-04-2006 à 18:53:32  profilanswer
 

Sagoth a écrit :

Oui, avec une chaine "en dur" comme ton exemple, ca marche.
 
En fait il me renvoie la taille de mon bufData déclaré (et non la taille des données dans celui ci), une sorte de sizeOf.


Ou alors "bufData" contient 1025 caractères non nul et le caractère suivant (qui n'appartient plus à "bufData" mais qui est le suivant dans la mémoire) contient un "\0" d'où le 1025 que tu reçois dans "longueur"
 

Sagoth a écrit :

Soit c'est l'espion du debugger qui a du mal, soit c'est encore un truc tordu du managé.


Essaye un bête printf("%d\n", strlen(bufData))...


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [C++ Managé Managed] : String->Length vers int : incohérence valeurs

 

Sujets relatifs
récupérer les valeurs d'un champ input type radioenvoyer des données PHP vers FLASH
Une Map/List contient-elle une "référence vers" ou l'objet lui même ?Comment récupérer les valeurs d'un champ text dont le nom s'incrémente
conversion HTML vers PDFafficher ligne group by meme si pas de valeurs
Conversion String en Hexa ("1F") vers byteConseil sdd à adopter pour couples objet/références vers cet objet
[perl]: copie fichier1 vers fichier2 sauf le début 
Plus de sujets relatifs à : [C++ Managé Managed] : String->Length vers int : incohérence valeurs


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR