添加到masm中的缓冲区?
Posted
技术标签:
【中文标题】添加到masm中的缓冲区?【英文标题】:Adding to buffer in masm? 【发布时间】:2011-07-30 02:33:50 【问题描述】:我想在 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 中做到这一点?
【问题讨论】:
【参考方案1】:你可以用这个:
mov ebx, offset Buffer
get_page:
add ebx, Bufferlen
invoke InternetReadFile, hRequest, ebx, sizeof Buffer, addr Bufferlen
假设 ebx 在检索之间不会改变。你也可以使用另一个变量。
【讨论】:
以上是关于添加到masm中的缓冲区?的主要内容,如果未能解决你的问题,请参考以下文章