У меня есть раздражающая проблема, я не могу добавить текст к текстовому файлу. Каждый раз, когда я открываю его для записи, я перезаписываю данные. Я пытался переместить указатель файла в конец файла, но никакой результат (никакая запись в файл вообще). Вот код:
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
Какие-либо идеи?Заранее спасибо!
Вы устанавливаете значение edx
перед вызовом SetFilePointer
и используете его после вызова. Однако функции Windows API используют соглашение о вызовах stdcall
, которое не гарантирует сохранение регистра edx
, поэтому значение в нем уничтожается, и вызов WriteFile завершается неудачно.