Помогите с Masm и Winapi

  • Автор темы FourtySeven
  • Дата начала
Статус
Закрыто для дальнейших ответов.
F

FourtySeven

#1
Может и мне поможите:

Программа должна запрашивать имя файла. Потом создавать файл с этим именем.

Проблема в том что
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 все работает =\
Заранее благодарен за ответ.
 
Статус
Закрыто для дальнейших ответов.