Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для El Sanchez

Ветеран


Contributor


Сообщения: 1269
Благодарности: 1027

Профиль | Отправить PM | Цитировать


Цитата Johny777:
если указатель на переменную структуры (var MyVariable :SECURITY_ATTRIBUTES), то нужно описать SECURITY_ATTRIBUTES в разделе type и присвоить этот тип соответствующим переменным (в заголовке ф-ции и в разделе var)
короче суть в том что указатель можно заменить на переменную »
Johny777, указатель и есть переменная, хранящая адрес переменной, на которую указывает указатель. Адрес - число из диапазона целых чисел от 0 до 2^31-1 (диапазон адресов памяти, доступных 32-разрядному процессу). За неимением указателей в Inno последние можно заменить переменными целочисленного типа, доступными хранить числа из вышеуказанного диапазона.
Теперь опять про CreateFile с параметром lpSecurityAttributes. Можно объявить как lpSecurityAttributes: SECURITY_ATTRIBUTES, заполнить самому структуру и в функцию передать объявленную переменную типа SECURITY_ATTRIBUTES, а можно объявить как lpSecurityAttributes: Longint, вычислить адрес объявленной переменной самому (сам понимаешь, что в Inno адрес такой переменной не получить. Исключение: для переменной строкового типа можно получить ее адрес при помощи ф-ии CastStringToInteger) и передать в функцию. Но 0 передать можно (This parameter can be NULL).
В общем, для просветления кармы почитай http://www.transl-gunsmoker.ru/2009/09/blog-post.html

Цитата R.i.m.s.k.y.:
причем пользователь Администратор и вот этот root-администратор - разные вещи, у последнего ВСЕ права на ВСЁ, в тч на реестр »
R.i.m.s.k.y., это один и тот же пользователь. Установщику с дефолтным (admin) значением директивы PrivilegesRequired до лампочки ПКМ Запуск от имени администратора.
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:53, 26-11-2012 | #1332