我想在masm中检索网站内容为字符串,我正在使用wininet并且页面被要求正常,但是当我使用InternetReadFile读取内容时我不知道如何将它全部放在同一个缓冲区中,因为它不是一次全部阅读的。
代码如下:
.data?
Bufferlen dd ?
Buffer db 65536 dup(?)
....
get_page:
invoke InternetReadFile, hRequest, addr Buffer, sizeof Buffer, addr Bufferlen
.if Bufferlen != 0
invoke StdOut, offset Buffer
jmp short get_page
.endif
....
那会打印终端中的整个页面,但我希望将整个页面放入缓冲区,而不仅仅是最后一个块读取。
在C ++中,我会像这样使用它:
int BufferPointer = 0;
get_page:
invoke InternetReadFile, hRequest, addr Buffer+BufferPointer, sizeof Buffer, addr Bufferlen
.if Bufferlen != 0
BufferPointer += Bufferlen; <- PSEUDO CODE : This is how I do it in C++
jmp short get_page
.endif
invoke StdOut, offset Buffer
我怎样才能在MASM中做到这一点?
答案 0 :(得分:1)
您可以使用:
mov ebx, offset Buffer
get_page:
add ebx, Bufferlen
invoke InternetReadFile, hRequest, ebx, sizeof Buffer, addr Bufferlen
假设ebx在检索之间不会改变。你也可以使用另一个变量。