Erreurs, bugs, questions - page 2566
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Vous êtes allé un peu trop loin avec les avertissements à mon avis, il y a un manque de cohérence dans le jugement.
D'accord
Ici aussi, iln'y a pas de perte de données dans ce sens(soit 0, soit pas 0).
mais il y a un avertissement. Une approche uniforme était attendue
Résultat d'une tentative d'accès à une propriété d'une instance de classe à partir d'une fonction statique de la même classe :
Le compilateur était silencieux avant cela.Ne pas initialiser une chaîne vide avec un terminal null.
Résultat
Attendu
Note dans l'aide pour la fonction StringInit
En fait, il n'y a pas de répartition.
C'est-à-dire l'attribution de cette façon, dix espaces
n'est pas la même chose que.
Le texte d'aide marqué en rouge ne correspond pas à un comportement logique.
Vous en faites trop avec les avertissements à mon avis, pas assez de cohérence dans le jugement.
Les avertissements ne fonctionnent pas sur les opérations booléennes, maintenant j'ai accidentellement remarqué une coquille dans mon code, donc je l'ai reproduite :
Ne pas initialiser une chaîne vide avec un terminal null.
Résultat
Attendu
Note dans l'aide pour la fonction StringInit
En fait, il n'y a pas de répartition.
C'est-à-dire l'attribution de cette façon, dix espaces
n'est pas la même chose que.
Et cela ne semble pas correspondre à la logique du comportement, mis en évidence en rouge dans le texte d'aide.
Vous avez manqué la fonction StringBufferLen - elle renvoie la taille du tampon alloué. StringLen renvoie la longueur de la chaîne, c'est-à-dire jusqu'au caractère terminal, ou, s'il se trouve au tout début, la longueur 0. Buffer != string.
Vous avez négligé la fonction StringBufferLen - elle renvoie la taille du tampon alloué. StringLen renvoie la longueur de la chaîne, c'est-à-dire jusqu'au caractère terminal, ou, s'il se trouve au tout début, la longueur 0. Buffer != string.
Sinon, elle ne se connaît pas elle-même.
Vous avez négligé la fonction StringBufferLen - elle renvoie la taille du tampon alloué.
StringLen renvoie la longueur de la chaîne, c'est-à-dire jusqu'au caractère terminal, ou, s'il se trouve au tout début, la longueur 0. Buffer != string.
C'est clair, il s'agit d'initialiser une chaîne de caractères avec des zéros terminaux.
Pourquoi ne pas remplir stringInit(str, 10, 0) ; avec dix zéros terminaux ? Et retourner la longueur réelle de la chaîne.
Si vous voulez initialiser une chaîne vide, sans la remplir ! par exemple avec 100 caractères,
puis soit 100 espaces comme str = " many pokes at the keyboard ", soit initialiser la bêtise StringInit(str, 100, 65)
Je ne comprends pas pourquoi j'ai besoin de l'initialiser avec des déchets, il y en a déjà suffisamment ;))
C'est compréhensible, il s'agit d'initialiser la chaîne avec des zéros terminaux.
Pourquoi ne pas remplir StringInit(str, 10, 0) ; avec dix zéros terminaux ? Et retourner la longueur réelle de la chaîne.
Si vous voulez initialiser une chaîne vide, sans la remplir ! par exemple avec 100 caractères,
puis soit 100 espaces comme str = " many pokes at the keyboard ", soit initialiser la bêtise StringInit(str, 100, 65)
Je ne comprends pas pourquoi j'ai besoin de l'initialiser avec des déchets, il y en a déjà suffisamment ;))
Qu'est-ce qui vous fait penser que ce n'est pas rempli ? C'est juste que la longueur dans la chaîne µl n'est pas stockée, elle est reconnue par le terminal zéro.
Non ?
Et si vous avez besoin de zéros, il existe une classe String quelque part dans les entrailles de la std µl.
Qu'est-ce qui vous fait penser qu'il n'est pas rempli ? C'est juste que la longueur dans la chaîne µl n'est pas stockée, elle est reconnue par le terminal zéro.
n'est-ce pas ?
Et si vous avez besoin de zéros, il existe une classe String quelque part dans les entrailles de la std µl.
Nah... Ça renvoie zéro de cette façon aussi. Et le troisième paramètre, ushort, requiert un code de caractères entiers.
Si je l'initialise en tant que str = " " ; et que je passe ensuite les données de la dll, tout est ok.
Mais si je l'initialise comme StringInit(str, 10, 0) alors les données n'arrivent pas. C'est parce que le code n'alloue pas de mémoire pour la chaîne de caractères de la taille requise.
Si j'avais un code pour l'espace, cela aurait probablement fonctionné, mais je n'ai pas trouvé un tel code dans différentes tables.
Nous devons allouer de la mémoire pour le nombre de futurs caractères qui iront ensuite dans la chaîne vide déjà initialisée.
Mais c'est nul pour initialiser la chaîne, pas kommelpho.
StringInit(str, 100, 0) ; devrait être rempli de nuls terminaux et retourner la longueur 100.
S'il existait un code pour un espace, cela aurait pu fonctionner, mais je n'ai pas trouvé un tel code dans les différents tableaux.
)) Dupliquer