SetFileAttributes. Второй параметр - только константа?

Тема в разделе "WASM.BEGINNERS", создана пользователем ant, 6 мар 2009.

  1. ant

    ant Member

    Публикаций:
    0
    Регистрация:
    19 мар 2008
    Сообщения:
    118
    Если делаю так:
    Код (Text):
    1. FILE_ATTRIBUTE_ARCHIVE equ 32
    2. ...
    3. invoke SetFileAttributes,addr wfd.cFileName, FILE_ATTRIBUTE_ARCHIVE
    то работает, а если так:
    Код (Text):
    1. faarch dd 32
    2. ...
    3. invoke SetFileAttributes,addr wfd.cFileName, addr faarch
    то файлу всегда присвается атрибут "системный"( в свойствах файла в проводнике чекбокс disabled), остальные атрибуты, вроде бы, сбрасываются. Пробовал инициализировать faarch непосредственно перед вызовом функции, та же ботва.
    Обычно спрашиваю у гугля, но тут не могу запрос сфомулировать. Или я один такой... начинающий.
    В чем моя ошибка?
     
  2. leo

    leo Active Member

    Публикаций:
    0
    Регистрация:
    4 авг 2004
    Сообщения:
    2.542
    Адрес:
    Russia
    addr убери перед faarch, иначе передается не число 32, а адрес переменной faarch
     
  3. ant

    ant Member

    Публикаций:
    0
    Регистрация:
    19 мар 2008
    Сообщения:
    118
    Спасибо. Работает. А в справочнике так:
    Код (Text):
    1.     BOOL SetFileAttributes(
    2.     LPCTSTR lpFileName, // address of filename
    3.     DWORD dwFileAttributes  // address of attributes to set );
    Это справка из mbuilder. Был бумажный справочник API Win2000, потерялся :dntknw:
     
  4. leo

    leo Active Member

    Публикаций:
    0
    Регистрация:
    4 авг 2004
    Сообщения:
    2.542
    Адрес:
    Russia
    Это "очепятка" ;)
    Во-первых, если бы был адрес, то тип параметра был бы LPDWORD, а не DWORD, да и вариант с передачей константы FILE_ATTRIBUTE_ARCHIVE не работал бы
    Во-вторых, электронные\бумажные справочники это хорошо, но они имееют нехорошее св-во устаревать, поэтому не мешает хоть иногда заглядывать в "свежий" online msdn, особенно если в чем-то сомневаешься ;)
     
  5. K10

    K10 New Member

    Публикаций:
    0
    Регистрация:
    3 окт 2008
    Сообщения:
    1.590
    Все правильно в справочнике...