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

    OPEN SOURCE PROJECT

    [ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
    • Страница 1 из 1
    • 1
    Нужна функция API
    andXreiДата: Среда, 11.03.2009, 10:35 | Сообщение # 1
    Майор
    Группа: Проверенные
    Сообщений: 95
    Репутация: 2
    Статус: Offline
    Как можно узнать существует папка или файл в указаной директории???
    Есть такая функция WinApi
     
    fasmДата: Среда, 11.03.2009, 11:19 | Сообщение # 2
    Admin
    Группа: Заблокированные
    Сообщений: 122
    Репутация: 5
    Статус: Offline
    В общем такой функции нет, используют в обход несколько вариантов:

    1. Открыть файл: _lopen или OpenFile, если функция возвращает ошибку HFILE_ERROR(-1), то файла нет.

    2. Узнать атрибуты файла функцией
    invoke GetFileAttributes,lpFileName, если функция возвращает -1, файла нет, если функция возвращает FILE_ATTRIBUTE_DIRECTORY - это папка, если иное значение, то это существующий файл.

     
    andXreiДата: Пятница, 13.03.2009, 12:40 | Сообщение # 3
    Майор
    Группа: Проверенные
    Сообщений: 95
    Репутация: 2
    Статус: Offline
    А как узнать возратила функция -1 и куда???

    P.S.
    Напоминаю я только начинающий!!

    Добавлено (11.03.2009, 16:17)
    ---------------------------------------------
    /////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\//////////////////

    А возращает случайно не в регист EAX ???

    Добавлено (13.03.2009, 12:40)
    ---------------------------------------------
    кто нибудь ответит????
    sad

    Сообщение отредактировал andXrei - Среда, 11.03.2009, 16:18
     
    fasmДата: Вторник, 17.03.2009, 15:25 | Сообщение # 4
    Admin
    Группа: Заблокированные
    Сообщений: 122
    Репутация: 5
    Статус: Offline
    Да я снова в деле. возвращаются значения в EAX, сравнить можно тоже несколькими вариантами:

    1. Сравниваем регистр с числом.
    cmp eax, -1
    je error_exisist

    2. Увеличиваем eax на единицу и тестим, если 0, то функция вернула ошибку:

    inc eax
    test eax, eax
    je error_exisist

    3. Делаем тоже самое, что и во 2 варианте, только применяем логическое или:

    inc eax
    or eax, eax
    je error_exisist

    Для подробностей читайте абеля: http://fasm.moy.su/load/4-1-0-20

     
    • Страница 1 из 1
    • 1
    Поиск: