2016-01-14 2 views
0

Est-il possible de lire une chaîne en utilisant (appel ReadString) sans définir la longueur de la chaîne qui sera lue? Avant d'appeler ReadString Je dois dire combien de temps la chaîne sera:Chaîne de lecture sans définition de longueur

mov edx, offset StringOffset 
mov ecx, maxLenght 
call ReadString        
mov countOfChars, eax 

Est-il possible de lire une chaîne sans définir la longueur max?

+2

_ "Est-il possible de lire la chaîne en utilisant (appelez ReadString) sans définir la longueur de la chaîne qui sera lue?" _ Cela semble dangereux. Que faire si vous lisez plus de données que la mémoire tampon peut contenir? – Michael

Répondre

0

Je n'ai jamais fait avec un appel ReadString, mais vous pouvez utiliser le \0 à la fin de la chaîne pour avoir le maxLength ou le lire manuellement?

xor  eax, eax 
    cmp  edi, 0 
    jz  end 
deb: 
    cmp  BYTE[edi+eax], 0 
    jz  end 
    inc  eax 
    jmp  deb 
end: 
    ...