Воскресенье
02.02.2025
16:42
Форма входа
Поиск
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Статистика

    OPEN SOURCE PROJECT

    [ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
    • Страница 1 из 1
    • 1
    есть проблема
    andXreiДата: Четверг, 02.04.2009, 13:56 | Сообщение # 1
    Майор
    Группа: Проверенные
    Сообщений: 95
    Репутация: 2
    Статус: Offline
    Вот мой исходник
    Code

    include 'win32ax.inc'
    .data

    len_buf = $-buffer
    hfile   dd ?
    buffer dd ?
    SzFullNewNameFile db 'C:\Info.txt',0

    .code
    start:
    call [GetSystemDirectory]

    mov eax,[buffer]

    push 0
    push  SzFullNewNameFile
    call [_lcreat]
    mov [hfile], ebx
    push len_buf
    push buffer
    push ebx
    call [_lwrite]

    push [hfile]
    call [CloseHandle]

    push 0
    call [ExitProcess]
    .end start

    Принцип его такой создаёт файл и вписывает в него системную директорию

    Только вот не получаеться вписать в файл данные.
    Посмотрите в чем ошибка

     
    At0mДата: Четверг, 02.04.2009, 21:42 | Сообщение # 2
    Рядовой
    Группа: Пользователи
    Сообщений: 3
    Репутация: 1
    Статус: Offline
    Code
    include 'win32ax.inc'

    ;MAX_PATH=255

    .data
    buffer rb 255
    len_buf = $-buffer
    hFile   dd ?
    sLen    dd ?
    FileName db 'C:\Info.txt',0

    .code
    start:

    push len_buf            ;размер buffer'a
    push buffer             ;указатель на buffer
    call [GetSystemDirectory]

    push buffer
    call [lstrlen]     ;получаем длину строки в buffer'e
    mov [sLen],eax

    push 0
    push  FileName
    call [_lcreat]
    mov [hFile], eax

    push [sLen]
    push buffer
    push eax
    call [_lwrite]

    push [hFile]
    call [CloseHandle]

    push 0
    call [ExitProcess]
    .end start
     
    andXreiДата: Пятница, 10.04.2009, 14:14 | Сообщение # 3
    Майор
    Группа: Проверенные
    Сообщений: 95
    Репутация: 2
    Статус: Offline
    А если я хочу передать параметры из eax в MessageBox
    Это так должно быть
    Code

    include 'win32ax.inc'

    .data

    Caption db 'инф',0

    Txt rb 255

    .code
    start:

    call [GetSystemDirectory]

    mov eax,Txt

    push 0
    push Caption
    push Txt
    push 0
    call [MessageBox]

    push 0
    call [ExitProcess]
    .end start

    Но чтото не выходит??

    Добавлено (10.04.2009, 14:14)
    ---------------------------------------------
    Что так и никто не может ответить??

     
    fasmДата: Вторник, 14.04.2009, 00:36 | Сообщение # 4
    Admin
    Группа: Заблокированные
    Сообщений: 122
    Репутация: 5
    Статус: Offline
    Обрати внимание на то, что функция GetSystemDirectory использует 2 параметра, это указатель на буфер и число = размеру буфера т.е. добавь перед вызовом функции:

    Code

    push 255
    push Txt    

    а это:

    Code

    mov eax,Txt   

    Можно удалить, ведь изменения происходят именно в буфере + eax регистром ты не пользуешься...
     
    • Страница 1 из 1
    • 1
    Поиск: