5.40 b2 Je ne comprend plus grand chose aux string ...
Publié : ven. 04/sept./2015 6:23
Salut à tous.
Je comprend vite mais faut m'expliquer longtemps
J'ai installé la 5.40 b2 et j'essaye de compiler mon projet mais toujours sans y arriver.
J'ai rien trouvé dans le fichier d'aide fr, le site svn est imbuvable pour moi...
Qui peut m'expliquer clairement comment on gère les chaines sur les exemples suivants :
J'utilise la lig nx_splitter de Srod qui fonctionne sans plantage:
La ligne suivante fonctionne jusqu'à pb 5.31
J'ai tout modifier comme ceci :
là ça compile (je ne sais pas si ça fonctionnera puisque je n'ai pas pu compiler mon projet).
si on se réfère à la doc MS, le second paramètre est de type : LPCTSTR voire un atom
Je pense que l'expression suivante est correcte mais j'ai une erreur (je me trompe peut-être):
On doit forcément passer une valeur numérique et jamais @"xxxx" ?
Ensuite dans ma librairie de gestion des menu couleur, j'ai :
et j'ai une erreur "Parenthèses interdite dans une opération de chaine" ......
si on se réfère à la doc MS de DrawText, le second paramètre est de type : LPCTSTR
Je tente une seconde approche avec un Peeks
mais là encore j'ai la même erreur de compilation : "Parenthèses interdite dans une opération de chaine"
alors une nouvelle approche :
je défini une chaine :
et là ca compile et le @ est bien pris en compte avec PeekS
là je perd le fil , le @est uniquement interdit pour l'utilisation des API mais pas des fonctions PB ?
Si on veut faire évoluer le pointeur de chaine, il faudra recréer à chaque fois une chaine pour la passer ?
j'aimerais une explication sur la nouvelle gestion des chaines avant de modifier mes 78000 lignes de code.
Merci
Je comprend vite mais faut m'expliquer longtemps

J'ai installé la 5.40 b2 et j'essaye de compiler mon projet mais toujours sans y arriver.
J'ai rien trouvé dans le fichier d'aide fr, le site svn est imbuvable pour moi...
Qui peut m'expliquer clairement comment on gère les chaines sur les exemples suivants :
J'utilise la lig nx_splitter de Srod qui fonctionne sans plantage:
La ligne suivante fonctionne jusqu'à pb 5.31
Code : Tout sélectionner
SetProp_(hWnd, @"nxSPLITTER_PROP", *nx)
Code : Tout sélectionner
SetProp_(hWnd, "nxSPLITTER_PROP", *nx)
si on se réfère à la doc MS, le second paramètre est de type : LPCTSTR voire un atom
donc un pointeur sur une chaine ou aussi un atom identifiant une chaine.A null-terminated string or an atom that identifies a string. If this parameter is an atom, it must be a global atom created by a previous call to the GlobalAddAtom function. The atom must be placed in the low-order word of lpString; the high-order word must be zero.
Je pense que l'expression suivante est correcte mais j'ai une erreur (je me trompe peut-être):
Code : Tout sélectionner
SetProp_(hWnd, @"nxSPLITTER_PROP", *nx)
Ensuite dans ma librairie de gestion des menu couleur, j'ai :
Code : Tout sélectionner
DrawText_(DC, Texte + (llen + 1)*SizeOf(Character), rlen, *Item, #DT_EXPANDTABS | #DT_SINGLELINE | #DT_VCENTER | #DT_NOCLIP | #ES_RIGHT)
si on se réfère à la doc MS de DrawText, le second paramètre est de type : LPCTSTR
si c'est un pointeur, pourquoi on ne peut pas faire un calcul sur le pointeur ?A pointer to the string that specifies the text to be drawn.
Je tente une seconde approche avec un Peeks
Code : Tout sélectionner
DrawText_(DC, PeekS(Texte + (llen + 1)*SizeOf(Character)), rlen, *Item, #DT_EXPANDTABS | #DT_SINGLELINE | #DT_VCENTER | #DT_NOCLIP | #ES_RIGHT)
alors une nouvelle approche :
je défini une chaine :
Code : Tout sélectionner
Protected mlkj$ = ""
mlkj$ = PeekS(@Texte + (llen + 1)*SizeOf(Character))
là je perd le fil , le @est uniquement interdit pour l'utilisation des API mais pas des fonctions PB ?
Si on veut faire évoluer le pointeur de chaine, il faudra recréer à chaque fois une chaine pour la passer ?
j'aimerais une explication sur la nouvelle gestion des chaines avant de modifier mes 78000 lignes de code.
Merci