我遇到了一个恼人的问题,我无法将任何文本附加到文本文件中。每次打开它进行写入时,我都会覆盖数据。我试图将文件指针移动到文件的末尾,但没有结果(根本没有写入文件)。 这是代码:
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
有什么想法吗?提前谢谢!
答案 0 :(得分:2)
您在调用edx
之前设置SetFilePointer
的值并在通话后使用它。但是,Windows API函数使用stdcall
调用约定,但不保证保留edx
寄存器,因此其中的值将被销毁,并且对WriteFile的调用将失败。