Windows API longueur de String (VBA.Len vs. VBA.LenB)
Bonjour,
A force de creuser le sujet, je me suis rendu-compte qu'il était préférable de récupérer la longueur d'une String (peut-être que c'est à différencier d'un buffer ?) via VBA.LenB. Hors, le code suivant plante en 64 bits.
Le bout de code suivant permet de lire le contenu d'une console MS-DOS.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
'...
Dim lpCharacter As String: lpCharacter = VBA.Space$(8192) 'je pourrais augmenter la taille, mais ça me suffit
'a priori, je devrais écrire nLength:=VBA.LenB(lpCharacter) au lieu de nLength:=VBA.LenB(lpCharacter) pour assurer une compatibilité mixte 32 vs. 64 bits, mais ça plante en 64 bits
API.ReadConsoleOutputCharacter hConsoleOutput:=hConsoleOutput, _
lpCharacter:=lpCharacter, _
nLength:=VBA.Len(lpCharacter), _
dwReadXY:=0&, _
lpNumberOfCharsRead:=lpNumberOfCharsRead 'dwReadXY est remplacé par dwReadCoord dans la déclaration officielle
pStr = VBA.left$(lpCharacter, lpNumberOfCharsRead)
'... |
Pouvez-vous s'il vous plaît m'en dire davantage concernant ce type de subtilité ?
Merci ;)