1

我遇到了一个烦人的问题,我无法将任何文本附加到文本文件中。每次打开它进行写入时,我都会覆盖数据。我试图将文件指针移动到文件末尾,但没有结果(根本没有写入文件)。这是代码:

INVOKE CreateFile, offset filePath, GENERIC_WRITE, FILE_SHARE_WRITE, 0, OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,0
mov hFile, eax
mov edx, 10
INVOKE SetFilePointer, hFile, 0, 0, FILE_END
INVOKE WriteFile, hFile, offset buffer, edx, ADDR SizeReadWrite, NULL
INVOKE CloseHandle, hFile

有任何想法吗?先感谢您!

4

1 回答 1

2

您在edx调用之前设置 的值并在调用SetFilePointer之后使用它。但是,Windows API 函数使用的stdcall调用约定不能保证保留edx寄存器,因此其中的值被破坏,并且对 WriteFile 的调用失败。

于 2010-04-23T20:09:27.940 回答