如何在WinAPI中将文本附加到文本文件?

时间:2010-04-23 19:53:53

标签: winapi append handle

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

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

有什么想法吗?提前谢谢!

1 个答案:

答案 0 :(得分:2)

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