FoxPro Club Главная

Конференция Решения Фотоальбом Сайт М.Дроздова Статьи Файловый архив Книга Visual FoxPro 9.0 Русский Help для Visual FoxPro
Пользователей: 9268
Вход
NETLIB

Перевод и адаптация класса Эда Рауха ( Ed Rauh www.universalthread.com , files archives, win32api) В любом языке есть свои ограничения. Фокс от них тоже не свободен. Но как известно, нет задачи, которую бы нельзя было бы решить, если это действительно нужно.


 
Прислал: Владимир Журавлев   Категория: Сети (Интернет и др.)


Перевод и адаптация класса Эда Рауха ( Ed Rauh www.universalthread.com , files archives, win32api) В любом языке есть свои ограничения. Фокс от них тоже не свободен. Но как известно, нет задачи, которую бы нельзя было бы решить, если это действительно нужно. Как известно, вызов многих win32 функций требует использования косвенной адресации. Но это в Фоксе не проблема, используем @ . Вызов других функций требует передачи структур. Тоже ничего страшного-подсовываем массивы, имитирующие эти структуры. Но вот часть функций имеет самоссылочные структуры или ссылки на ссылки ( косвенно-косвенную динамическую адресацию) . Другими словами в функцию должна передаваться структура, а в структуре косвенные ссылки на другие структуры. Вот тут лобовой способ решения на Фоксе не срабатывает. Подсовывание @ дважды в вызове функции и в ее теле при вызове из нее такой же структуры приводит к неправильной работе. Нужна более тяжелая артилерия. То есть нужна подготовительная работа по возможности работы с памятью нужным образом. Само собой все это можно сделать на Фоксе. Только нужно знать -что и как. Ну а для чего. А вот ,например , как увидеть сетевое окружение. Ясно , что функция aprinters дает принтеры. Список драйвой тоже можно получить за дешево. Я рассказывал об этом в своей предыдущей статье про использование winipi функций. Но вот получить все в дном пакете со свойствами, что на каком компьютере расположено, вообще получить сетевое окружение-это уже требует других функций. Или, например , присоединить или отсоединить программно сетевой диск, дать ему имя, сделать диск доступным другим пользователям или закрыть от постороннего доступа и все такое прочее. Можно даже сделать такую штучку. У Вас есть Дельфийский конкурент, который вас достал своим амморальным поведением, но сидит на другом компьютере. Можно вырубить там дистанционно в реестре ссылки на нужные ему библиотеки, и несколько приятных часов ему обеспечено. Вот тут то и приходится вызывать функции , которые из Фокса не так просто и вызвать. Эд Раух решил эту задачу и представил на использование публике.Как и мы все с вами тоже часто делаем. Сделал он это как полуфабрикат. Часть кода в классах, часть в текстах функций, часть в примерах. Вобщем ничего готового. Я посидел пару дней и доделал из этой каши более менее нормальную библиотеку классов. Првда коментариев новых как не было, так и нет. Но пользоваться можно. Названия методов интуитивны. Скажем -как посмотреть сетевое окружение в курсоре Фокса. Нет ничего проще - Set classlib to netlib thisform.share1.getshare Результат будет в курсоре Библиотека-целое раздолье для программистов, обожающих сложности и C++. Ну у всех свои слабости
 
Сделайте оценку этого решения Плохо Удовлетворительно Так себе Хорошо Отлично Текущая оценка: (4.742) Вложение [16.32]kb
Дополнения пользователей
NETLIB
[+][?]
[Дополнить]



© 2000-2017 Fox Club 
При размещении любых материалов с сайта на других ресурсах- прямая ссылка на www.foxclub.ru обязательна
Яндекс.Метрика