Как добавить текст в текстовый файл в WinAPI? - PullRequest
1 голос
/ 23 апреля 2010

У меня раздражающая проблема, я не могу добавить любой текст в текстовый файл. Каждый раз, когда я открываю его для записи, я перезаписываю данные. Я попытался переместить указатель файла в конец файла, но безрезультатно (вообще не было записи в файл). Вот код:

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 Ответ

2 голосов
/ 24 апреля 2010

Вы устанавливаете значение edx перед вызовом на SetFilePointer и используете его после вызова.Однако функции API Windows используют соглашение о вызовах stdcall, которое не гарантирует сохранение регистра edx, поэтому значение в нем уничтожается, и вызов WriteFile завершается неудачей.

...