F
FourtySeven
Может и мне поможите:
Программа должна запрашивать имя файла. Потом создавать файл с этим именем.
Проблема в том что
API-шная процедура ReadConsole возвращает имя в формате 'any.name',0Dh,0Ah. А CreateFile использует 'any.name',00h.
Для этого я написал процедуру StrCutter, которая заменяет первое вхождение символа 0Dh на 00h.
Смотрим скрины debugger-а.
link removed
link removed
link removed
Права все есть(Админ). Если использовать text db 'bbb.txt',0 все работает =\
Заранее благодарен за ответ.
Программа должна запрашивать имя файла. Потом создавать файл с этим именем.
Проблема в том что
API-шная процедура ReadConsole возвращает имя в формате 'any.name',0Dh,0Ah. А CreateFile использует 'any.name',00h.
Для этого я написал процедуру StrCutter, которая заменяет первое вхождение символа 0Dh на 00h.
.data
text db 'bbb.txt',0Dh,0Ah
;Тут дескрипторы динамических библиотек и другие
;служебные переменные
.code
;Подключение библиотеки с моими процедурами, etc
MOV AX,sizeof text ;Толкаем в стек размер строки
PUSH AX
PUSH OFFSET text ;Толкаем адрес строки
CALL [StrCutterA] ; Запускаем мою процедуру получеам text='bbb.txt',0,0Ah
INVOKE CreateFile, ADDR text,GENERIC_WRITE,0,NULL,CREATE_ALWAYS, \
FILE_ATTRIBUTE_NORMAL,0 ; Здесь получаем ERROR_NOACCESS(000003E6)
;далее API-шные процедуры
MOV FhandleW,EAX
INVOKE CloseHandle,FhandleW
INVOKE ExitProcess,0
Смотрим скрины debugger-а.
Права все есть(Админ). Если использовать text db 'bbb.txt',0 все работает =\
Заранее благодарен за ответ.