Показать сообщение отдельно
Старый 03.09.2007, 16:26   #4  
monk is offline
monk
Участник
 
67 / 12 (1) ++
Регистрация: 14.10.2002
Спасибо, все заработало.


Можно еще вопрос из той же области:

Правильно ли я понял, что механизм разрешений работает следующим образом:

1. Создаем экземпляр класс проверок *Permission
2. Вызываем метод assert, который проверят возможность исполнения опасного действия
3. В классе, который исполняет опасное действие, вызывается метод demand, который по стеку вызовов ищет нужный ему assert

Если это так, то не совсем понятен следующий код в методе:

Код:
WinApiServer::createFile()
{
  // check file I/O permission
    if(_flags == #OPEN_EXISTING)
    {
        fileIOPerm = new FileIOPermission(_fileName,'r');
    }
    else
    {
        fileIOPerm = new FileIOPermission(_fileName,'w');
    }
    fileIOPerm.demand();     
}
Почему здесь идет явный вызов demand ?
Такой код встречается во многих методах класса WinApiServer

Кстати, если вызвать этот метод, то на вызове demand возникает ошибка разрешения.

Вероятно это ошибка и должен быть вызов assert.