|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Авг 3, 2004 03:25:15 · Поправил: Asterix Не могу понять почему строка не пишется в файл..
format PE GUI 4.0
entry start
include '%fasminc%\win32a.inc'
section '.code' code readable writeable executable
align 4
start:
invoke CreateFile, FileName, GENERIC_WRITE,\
FILE_SHARE_READ, 0, CREATE_ALWAYS,\
FILE_ATTRIBUTE_NORMAL, 0
cmp eax, INVALID_HANDLE_VALUE
je @exit
mov [hFile], eax
mov ebx, _st
invoke GetLocalTime, ebx
virtual at ebx
systime SYSTEMTIME
end virtual
xor eax, eax
mov ax, [systime.wSecond]
push eax ; 1
mov ax, [systime.wMinute]
push eax ; 2
mov ax, [systime.wHour]
push eax ; 3
mov ax, [systime.wYear]
push eax ; 4
mov ax, [systime.wDay]
push eax ; 5
mov ax, [systime.wMonth]
lea eax, [month-4+eax*4]
push eax ; 6
push szFormat ; 7
mov esi, buffer
push esi ; 8
call [wsprintf]
add esp, (8 * 4)
invoke WriteFile, [hFile], esi, eax, NumberOfBytesWritten, 0
invoke CloseHandle, [hFile]
@exit:
invoke ExitProcess, 0
section '.data' data readable writeable
FileName db 'CompileTime.inc',0
align 4
szFormat db 'CompileTime db "%s %02u %04u at %02u:%02u:%02u",0',0
align 4
month db "Jan",0
db "Feb",0
db "Mar",0
db "Apr",0
db "May",0
db "Jun",0
db "Jul",0
db "Aug",0
db "Sep",0
db "Oct",0
db "Nov",0
db "Dec",0
section '.udata' readable writeable
hFile dd ?
NumberOfBytesWritten dd ?
align 4
_st SYSTEMTIME
align 4
buffer rb 128
section '.idata' import data readable writeable
library kernel32,'KERNEL32.DLL',\
user32,'USER32.DLL'
include '%fasminc%\APIA\KERNEL32.INC'
include '%fasminc%\APIA\USER32.INC' |
|
|
Дата: Авг 3, 2004 03:29:31 Приаттачишь EXE ??? |
|
|
Дата: Авг 3, 2004 03:40:35 |
|
|
Дата: Авг 3, 2004 03:49:53 Вот: invoke WriteFile, [hFile], esi, eax, NumberOfBytesWritten, 0 |
|
|
Дата: Авг 3, 2004 03:55:41 Ошибку нашёл и исправил. |
|
|
Дата: Авг 3, 2004 03:57:05 Угу, я тоже уже накопал, ее. Забываю про скобочки.. Masm в голове сидит :-) |
|
|
Дата: Авг 4, 2004 08:41:13 А почему вот такая штука не читает файлы с CD ? (Должна ?) invoke CreateFileA,addr FNameOp,ENERIC_WRITE\ GENERIC_READ,FILE_SHARE_WRITE+FILE_SHARE_READ,0,\ OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0 mov hFileR,eax invoke ReadFile,hFileR,addr lpBuffer,BufSiz,\ addr lpNumberOfBytesRead,0 |
|
|
Дата: Авг 4, 2004 12:43:48 · Поправил: Sk. Inc. Sonic 1) У тебя ошибка: invoke CreateFileA,addr FNameOp,ENERIC_WRITE\ GENERIC_READ,FILE_SHARE_WRITE+FILE_SHARE_READ,0,\ OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0Должно быть: invoke CreateFileA,addr FNameOp,GENERIC_WRITE\ GENERIC_READ,FILE_SHARE_WRITE+FILE_SHARE_READ,0,\ OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,02) И как ты себе представляешь GENERIC_WRITE на компакт? Поэтому, функция и выпадает с ошибкой, данные-то на CD должны писАться сессиями :) |
|
|
Дата: Авг 4, 2004 13:07:50 Sonic Ты проверял успешность вызова CreateFileA и ReadFile, анализировал значение GetLastError. Sk. Inc. В твоем коде (который Должно быть) чего-то не хватает между GENERIC_WRITE и GENERIC_READ, ;-) |
|
|
Дата: Авг 4, 2004 13:13:11 · Поправил: Sk. Inc. q_q Точно, должно быть так :) invoke CreateFileA,addr FNameOp,GENERIC_WRITE\ or GENERIC_READ,FILE_SHARE_WRITE+FILE_SHARE_READ,0,\ OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0Хотя в правильном варианте GENERIC_WRITE вообще не должно быть ;) |
|
|
Дата: Авг 5, 2004 08:01:12 OK, всё работает, спасибо ! |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.068 |