    Глава 12. Создание программы Setup и оптимизация приложения	285 

    Глава 12. Создание программы Setup и оптимизация приложения 

    При распространении приложения в дистрибутивный пакет необходимо включить 
исполняемый файл приложения, а также все сопутствующие файлы, требуемые для 
работы приложения, такие, как библиотеки DLL, пользовательские элементы 
управления и серверы Автоматики. Для правильной установки этих компонентов 
пользователей нужно обеспечить программой установки Setup. 
    Помимо создания программы установки, в этой главе также рассматривается 
оптимизация производительности приложения и использование инструментальных 
средств, обеспечиваемых Visual Basic для повышения эффективности разработки 
приложения. Показано также, как использовать служебную программу удаления 
приложения, которая включается с программами Setup, создаваемыми мастером 
Setup Wizard. 

    12.1. Создание программы установки 

    Программа Setup должна обеспечить выполнение следующих задач: 
    •	копирование необходимых файлов на систему пользователя; 
    •	размещение файлов в соответствующих папках; 
    •	регистрация файлов; 
    •	создание группы для Program Manager или элемента или группы меню Start. 
    Для создания программы Setup можно использовать Setup Wizard, 
обеспечиваемый Visual Basic (см. также раздел "Создание программы установки 
элемента управления" в главе 9). Visual Basic также включает пакет Setup 
Toolkit, который можно подключать к Setup Wizard для создания пользовательской 
программы Setup. Разработчик может также создавать свою собственную программу 
Setup, определять, какие файлы необходимы, компрессировать файлы и вручную 
копировать файлы на диск или в папку Setup. 

    12.1.1. Использование мастера Setup Wizard 

    Самый простой способ создания программы Setup — использовать мастер Setup 
Wizard. Setup Wizard запрашивает информацию относительно приложения и 
автоматически определяет, какие файлы должны быть включены для тиражирования, 
сжимает файлы, копирует их на диск и создает программу Setup. 
    Setup Wizard поддерживает следующие опции распространения приложения: 
    •   создание нескольких установочных гибких дисков. Setup Wizard может 
разбивать файлы, если они не умещаются на гибкий диск; 
    •   копирование файлов в отдельный установочный каталог на жестком диске 
для распределения по сети или через CD-ROM; 
    •   распространение приложения по Internet с использованием механизма 
загрузки программного кода Microsoft Internet Explorer версии 3.0. 
    Запустить Setup Wizard можно, выбрав файл Setupwiz.exe из папки 
\Setupkit\kitfil32 в директории установки Visual Basic. 
    Для определения файлов, которые необходимо включить в программу Setup, 
Setup Wizard прослеживает ссылки и пользовательские элементы управления, 
включенные в проект. Затем Setup Wizard читает файл VB5Dep.ini в папке 
Windows, чтобы определить, какие файлы требуются для каждой ссылки или 
пользовательского элемента управления. 


    286 Создание программы установки 

    Например, если в проекте установлена ссылка на элемент управления 
Microsoft Common Dialog, Setup Wizard включает в программе Setup 
соответствующий файл (Comdlg32.ocx). 

    Примечание: Wizard Setup позволяет добавлять или удалять файлы из списка 
файлов, которые должны включаться в Setup. Если элементы управления, которые 
не использовались в приложении, появляются в экране шага Confirm Dependencies 
или если открывается экран Data Access Object, но известно, что ссылка на 
Объекты доступа к данным (ОАО) не добавлялась, необходимо удалить 
неиспользуемые файлы — очистить флажки в списке. 


    12.1.2. Файлы установки 

    Диски Setup или папка дистрибутива на жестком диске, созданная Setup 
Wizard, будут содержать все файлы, необходимые для установки приложения в 
системе пользователя. 

    Вот некоторые из необходимых файлов: Setup.exe 

    Setup Wizard копирует Setup.exe с папки Visual Basic на дистрибутивные 
носители или в папку жесткого диска. Чтобы установить приложение, пользователь 
запускает Setup.exe. Setup.exe копирует файлы начальной загрузки, 
перечисленные в Setup.1st, и затем запускает основную программу Setup (обычно, 
Setupl .exe). 

    Setup. 1st 

    Setup Wizard создает файл Setup.lst. Этот файл содержит список файлов, 
требуемых приложением, а также общую информацию, например папки по умолчанию и 
требуемое дисковое пространство. 
    Примерный файл Setup.lst может выглядеть следующим образом: 

    [Bootstrap] 
    Filel = l, , setupl. ех__, setupl .exe, $ (WinPath) , . . . 
    [Files] 
    Filel=l,,GRID32.0C_,GRID32.0CX,$(WinSysPath),,$(Shared).. 
    [Setup] 
    Title=LoanSheet 
    DefaultDir=$(ProgramFiles)\Loan 
    Setupl .exe 

    Setup Wizard копирует основную программу установки, Setupl .exe, из папки 
Visual Basic на дистрибутивные диски или в папку жесткого диска. Setup1.exe 
копирует и регистрирует файлы и создает пиктограммы запуска. Программа Setup 
также увеличивает количество ссылок на разделяемые файлы в системном реестре. 
    Программа установки создает файл журнала приложения (St5Unst.log), который 
копируется в папку приложения и включает следующую информацию: 
    •   созданные папки; 
    •  файлы, которые были установлены. В журнале отражаются случаи, когда 
файл не был скопирован, так как на диске была найдена более новая версия файла; 
    •   созданные вхождения системного реестра; 
    •  созданные группы Program Manager и вхождения меню Start; 
    •   DLL, EXE или OCX, которые были самозарегистрированы. 
    Программа Setup также копирует служебную программу удаления приложения 
(St5Unst.exe) в папку Windows. Информацию относительно этой служебной 
программы см. в разделе "Удаление приложения". 


    Глава 12. Создание программы Setup и оптимизация приложения	287 


    12.1.3. Использование пакета Visual Basic Setup Toolkit 

    С помощью комплекта инструментальных средств Visual Basic Setup Toolkit 
можно создавать пользовательские программы Setup, добавляя возможности, 
которые не обеспечивает автоматически Setup Wizard. Например, Setup Toolkit 
можно использовать для создания программы Setup, которая выводит на экран 
пользовательские формы и окна диалога или позволяет пользователю установить 
необязательные параметры приложения. 
    Пакет Setup Toolkit состоит из служебных программ, DLL и примерной 
программы установки, написанной на Visual Basic. Эта программа, Setupl.vbp, 
находится в папке \Vb\Setup-Kit\Setup1. Ее можно модифицировать под свои 
потребности и затем создать исполняемый файл Setup1.exe. После этого с помощью 
Setup Wizard можно создать дистрибутивные диски или папку Setup. Setup Wizard 
копирует Setup1.exe из папки Visual Basic Setup-kit\Setup1 в папку Setup. 

    Примечание: Рекомендуется сохранить оригинальную версию Setupl.vbp. 

    Использование Setup Wizard с Setup Toolkit Setup Toolkit и Setup Wizard 
можно использовать совместно для добавления к программе установки окон 
диалога, в которых пользователю предлагается специфицировать установку в 
приложении необязательных функций. Например, . в проекте может иметься файл 
оперативной справки, который некоторые пользователи могут не захотеть 
устанавливать. Можно добавлять столько опций установки, сколько требуется. 
    Чтобы добавить к программе Setup опцию установки: 
    1. Отредактировать программный код Setupt ,frm, добавив в событии 
Form_Load, непосредственно после блока кода с вызовом функции Формы ShowBegin, 
примерно следующий программный код: 

    Dim LoadHelp As   Integer 
    LoadHelp = MsgBox   ("Хотите ли  вы установить  файлы Help?",   vbYesNo) 
    If  LoadHelp  =  vbYes   Then 
    CalcDiskSpace   "Help" Endlf 
    '   Блок программного  кода,   содержащий  clcons  = _ 
Countlcons(strINI_FILES) If  LoadHelp = vbYes  Then 
    clcons  =  Countlcons("Help") Endlf 
    '   Блок  программного  кода,   содержащий  CopySection  strINI_FILES. 
    If  LoadHelp  =  vbYes   Then 
    CopySection  "Help" Endlf 
    '   Блок программного  кода,   содержащий Createlcons _ strINI_FILES,   strGroupName 

    2. Закрыть Setupl .frm, сохранить форму и проект и создать .ехе файл. 
    3. Запустить Setup Wizard. В экране File Summary после подтверждения всех 
зависимостей файлов добавить имена всех файлов, которые требуется установить, 
если в этом окне диалога пользователь введет "Yes". 
    4. По завершении работы с Setup Wizard сформировать дистрибутивный носитель. 


    288 Оптимизация приложения 

    5. Вставить Diskl в дисковод и открыть файл Setup.lst. Вырезать и вставить 
необязательные файлы из раздела [Files] в новый раздел. Этот новый раздел 
будет расположен ниже раздела [Files], и ему будет дан новый заголовок 
раздела, который соответствует строковому параметру (например, [Help]), 
который использовался в операторе CopySection. Убедиться в том, что 
скопированные строки перенумерованы: 

    [Help] 
    Filel=5,SPLIT, Appl.HLl, Appl.HLP, $(AppPath),,,10/07/97,2946967 
    (AppPath),,,10/07/97,2946967 
    File2=6,SPLIT, Appl.HL2, Appl.HLP 
    File3=7,, Appl.HLS, Appl.HLP 

    Когда пользователь запускает программу установки, программа Setup копирует 
все файлы раздела [Bootstrap] на машину пользователя и затем запрашивает у 
пользователя относительно установки файлов Help. Если пользователь выбирает 
Yes, в операторе CalcDiskSpa-се определяется наличие достаточного дискового 
пространства на машине пользователя для файлов Help. Затем программа 
устанавливает все файлы, перечисленные в разделе [Files] файла Setup.lst. 
    Далее программа снова тестирует флаг LoadHelp. Если пользователь выбрал 
установку файлов Help, Setupl .exe выполняет для них оператор CopySection и 
устанавливает файлы, перечисленные в разделе [Help] файла Setup.lst. 

    12.1.4. Удаление приложения 

    Когда пользователь выполняет программу Setup, созданную Setup Wizard, 
программа устанавливает в папку Windows системы пользователя служебную 
программу удаления приложений (St5Unst.exe). 
    Для удаления приложения в Microsoft Windows NT или Windows 95 нужно 
щелкнуть пиктограмму Add/Remove Programs (Установка/удаление программ) в 
Control Panel. 
    Служебная программа удаления приложений удаляет файлы приложения и 
пиктограммы или группы и уменьшает количество ссылок на разделяемые 
компоненты. Если количество ссылок — ноль, служебная программа запрашивает у 
пользователя подтверждение на удаление этого разделяемого компонента. 

    Примечание: Служебная программа удаления приложения требует для работы 
наличия достоверного файла журнала и достоверного вхождения в системном реестре. 

    Если приложение использует разделяемый компонент, о котором точно 
известно, что он имеется в системе пользователя, этот компонент все равно 
нужно включать с программой Setup. Этим гарантируется добавление ссылки на 
компонент, когда пользователь будет устанавливать приложение. 

    12.2. Оптимизация приложения 

    Под оптимизацией приложения обычно понимается проведение мероприятий, 
повышающих, насколько возможно, эффективность приложения. Visual Basic 
включает ряд инструментальных средств, которые можно использовать для 
определения степени эффективности программного кода. Например, приложение 
можно оптимизировать так, чтобы пользователи могли сохранить текущие установки 
их рабочей среды. При этом в последующих сеансах пользователи не должны будут 
реконфигурировать компьютеры при запуске. 
    Ниже описывается использование для оптимизации приложения надстройки Code 
Profiler. Также приводится ряд методов программирования, применение которых 
позволяет повысить производительность приложения. 


    Глава 12. Создание программы Setup и оптимизация приложения 289 

    12.2.1. Visual Basic Code Profiler 

    При оптимизации приложения необходимо определить, какой раздел кода 
выполняется наиболее часто, и затем постараться оптимизировать этот раздел 
кода. Visual Basic Code Profiler — надстройка, которая позволяет определить 
области приложения, оптимизация которых будет иметь наибольший эффект. Code 
Profiler сообщает, какой код выполняется в приложении, сколько раз и как долго 
он выполняется. 

    Рис. 12.1. Окно диалога Code Profiler. 

    Code Profiler поставляется с Visual Basic редакции Professional и 
находится в папке Tools (файл Vbcp.dll). Эта папка содержит различные 
инструментальные средства и вспомогательные программы. При установке Visual 
Basic эта папка не устанавливается. 

    12.2.2. Сохранение установок приложения 

    Использование приложения упрощается, если имеется возможность сохранить 
информацию относительно операций пользователя или параметров, с которыми 
пользователь каждый раз запускает приложение. Эту информацию можно затем 
использовать в последующих сеансах. Например, можно сохранить имя последней 
базы данных, открытой пользователем, и использовать это имя в качестве 
умолчательной базы данных при следующем открытии. 
    В Windows 3.1 и ранее программные установки обычно сохранялись в файлах 
.ini. В Windows NT и Windows 95 эти установки хранятся в системном реестре. 
Для сохранения установок приложения можно использовать операторы Visual Basic 
GetSetting и SaveSetting или подпрограммы Windows API. 

    Использование GetSetting и SaveSetting 

    Функция GetSetting используется для чтения установки из системного 
реестра. Синтаксис GetSetting следующий: 

    GetSetting (имя_приложения, раздел, ключ, [умолчание]) 

    В следующем фрагменте кода из соответствующего ключа в системном реестре 
Windows 95 считывается информация номера заказчика: 

    Dim strCustID as Integer Private Sub Form_Load() 
    strCustID = GetSetting _ 
    ("OrderApp", "CustSection", "CustID", "0") End Sub 


    290 Оптимизация приложения 

    Функция SaveSetting используется для записи вхождения в системный реестр. 
Синтаксис SaveSetting следующий: 

    SaveSetting имя_приложения, раздел, ключ, установка 

    В следующем фрагменте в соответствующем ключе системного реестра Windows 
95 сохраняется информация номера заказчика: 

    :jim  strCustID 
    Private Sub_Form_Unload() 
    strCustID = txtCustlD.Text 
    SaveSettings _ 
    "OrderApp", "CustSection", "CustID", StrCustID .•.,nd Sub 


    Использование Win32 API 

    Windows обеспечивает несколько процедур, которые можно использовать для 
чтения и записи в файлы .ini. 
    В Windows 95 и Windows NT сохранять специфическую для приложения 
информацию необходимо в системном реестре, используя операторы Visual Basic. 
Однако бывают случаи, когда требуется использовать функции Windows (работа с 
файлами .ini). 
    В следующей таблице перечислены процедуры Windows, которые можно 
использовать для сохранения установок приложения. 

    Процедура	Назначение 

    GetPrivateProfileString	Читает строковое вхождение из пользовательского 
файла .ini. 
    GetPrivateProfilelnt	Читает числовое вхождение из пользовательского файла .ini. 
    WritePrivateProfileString	Записывает вхождение в пользовательский файл .ini. 
    GetProfileString	Читает строковое вхождение из Win.ini. 
    GetProfilelnt	Читает числовое вхождение из Win.ini. 
    Информацию относительно работы с DLL см. в главе 5. 

    12.2.3. Аспекты оптимизации 

    Процесс оптимизации начинается с началом разработки приложения. Плохо 
спроектированное приложение работает медленно, независимо от того, сколько 
усилий впоследствии потратит разработчик, чтобы поднять производительность. 
    Оптимизация — сумма компромиссов. Улучшение одного аспекта 
производительности может обусловить снижение эффективности в другом. Например, 
если хранить формы загруженными, но скрытыми, они будут выводиться быстро, но 
в загруженном состоянии они потребляют много памяти. Если на компьютере 
пользователя память в дефиците, приложение может работать медленно. Поэтому 
необходимо определить факторы, наиболее важные для пользователя, и 
соответственно построить разработку. 

    Оптимизация фактического быстродействия 

    Ниже приводятся некоторые рекомендации по оптимизации реального 
быстродействия приложения: 
    •   некоторые типы данных при выполнении вычислений работают быстрее, чем 
другие. Рекомендуется использовать самый простой возможный тип данного; 


    Глава 12. Создание программы Setup и оптимизация приложения	291 

    •  доступ к переменной выполняется быстрее, чем доступ к свойству. При 
обращении к свойству в цикле вначале следует ассоциировать свойство с 
переменной и затем в цикле использовать переменную; 
    •  доступ к объектам ускоряется с использованием коллекций объектов; 
    •   в большинстве случаев производительность повышается при использовании DLL. 

    Оптимизация воспринимаемого быстродействия 

    Воспринимаемое быстродействие — субъективное восприятие быстродействия 
(как быстро приложение выполняется с точки зрения конечного пользователя). Эта 
характеристика часто связана с быстродействием отображения, но не всегда с 
реальным быстродействием. 
    Для улучшения восприятия приложения можно использовать такие способы: 
    •   применять индикаторы прогресса, давая пользователю информацию 
относительно статуса задачи; 
    •   использование асинхронной обработки. Для фонового выполнения 
длительной процедуры можно использовать таймер. Пользователь в это время может 
продолжать работать. По завершении фонового процесса можно активировать 
команду индикации завершения; 
    •   хранение форм скрытыми, но загруженными. Очевидный отрицательный 
момент в этой методике — объем памяти, потребляемый загруженными формами. 
Однако, если на первом месте стоят требования к скорости вывода форм, 
стоимостью памяти приходится пренебрегать. 

    Оптимизация быстродействия экранного вывода 

    Учитывая графический характер Microsoft Windows, операции экранного 
отображения оказывают определяющее воздействие на общее восприятие 
эффективности приложения. Для ускорения графического вывода в приложении 
имеется несколько способов: 
    •   правильное использование свойства AutoRedraw формы. Если приложение 
генерирует сложную и часто изменяемую графику, улучшить производительность 
можно, установив AutoRedraw в False и перейдя на "ручное управление" процессом 
регенерации графики; 
    •   использование элемента управления Image вместо PictureBox. Элемент 
управления Image требует меньшего количества ресурсов, чем PictureBox. Если 
требуется только выводить на экран изображение и отвечать на событие Click, то 
эти операции вполне может обеспечить элемент управления Image; 
    •   использование элемента управления PictureBox для имитации сложного 
набора элементов управления вместо использования реальных элементов управления; 
    •   при частом использовании формы — скрывать ее, вместо выгрузки. Скрытые 
формы выводятся быстрее, чем выгруженные. 

    Уменьшение расхода памяти 

    Как правило, для приложений существует взаимосвязь: требования к доступной 
памяти — доступная память — быстродействие приложения. Для снижения уровня 
требований и фактического расхода памяти компьютера существует ряд способов, в частности: 
    •   если данные длинной строки более не требуются, установить в коде 
приложения для строки значение "", чтобы вернуть память, используемую строкой. 
Если более не требуются данные динамического массива, используя операторы 
Erase или ReDim Preserve, удалить ненужные данные и вернуть системе память, 
используемую массивом. Erase реинициализирует массив нулями; ReDim Preserve 
может использоваться для уменьшения размера массива; 
    •   если изображение, выводимое в объекте PictureBox, более не требуется, 
функцией LoadPicture с пустым строковым параметром можно очистить объект. 


    292 Оптимизация приложения 

    12.2.4. Протокол событий 

    Возможность записывать ключевую информацию в журнал событий — новая 
функция, введенная в Microsoft Visual Basic версии 5.0. Методы и свойства, 
связанные с протоколированием событий, — часть объекта Арр (приложение), 
который является глобальным объектом, доступным через ключевое слово Арр. 
Объект Арр определяет информацию относительно многих аспектов приложения, 
включая информацию версии. 
    Для управления регистрацией событий используются методы StartLogging и 
LogEvent и свойство LogMode. 
    Режим журнала и адресат регистрации операции устанавливаются методом 
StartLogging. Синтаксис метода следующий: 

    Арр.StartLogging адресат, режим 

    Адресат   — путь и имя файла для сбора информации метода LogEvent. 
    Режим        — значение, определяющее порядок реализации протоколирования 
(методом LogEvent). 
    Установки для параметра режим перечислены в следующей таблице: 

    Режим	Описание 

    vbLogAuto	Определяет,   куда   будут  направляться   сообщения.   При   
работе  в Windows 95 сообщения будут направляться в расположение, 
специфицированное свойством LogFile. При работе в Windows NT сообщения будут 
регистрироваться в журнале событий приложения NT. 
    VbLogOff	Выключает протоколирование. 
    VbLogToFile	Направляет протоколирование в файл. 
    VbLogToNT	Направляет протоколирование в журнал событий NT. 
    VbLogOverwrite	Определяет, что файл журнала должен перезаписываться при 
каждом запуске приложения. Это значение может управляться программным способом 
с помощью других констант режим. 
    VbLogThreadID	Указывает, что в начало сообщения будет добавлен текущий 
идентификатор процесса. Это значение может управляться программным способом с 
помощью других констант режим. 
    Метод LogEvent используется для записи события в адресат журнала 
приложения. На платформах Windows NT метод записывает сообщения в журнал 
событий NT. На платформах Windows 95 метод записывает в файл, 
специфицированный в методе StartLogging. Если файл не специфицирован, события 
записываются в файл VBEvents.log. 
    Синтаксис метода LogEvent следующий: 

    Арр.LogEvent (буфер_журнала, тип_события) 

    Параметр буфер_журнала — текст, который должен быть записан в журнал. 
Параметр тип_события определяет тип или серьезность записываемых данных: 
ошибка, предупреждение или информационные данные. 
    Свойство LogMode — только для чтения и возвращает значение, определяющее, 
как будет выполняться протоколирование (методом LogEvent). Синтаксис свойства 
LogMode следующий: 

    режим = Арр.LogMode 

    Свойство LogPath — только для чтения и возвращает путь к текущему файлу 
журнала. Синтаксис свойства LogPath следующий: 
    файл = Арр.LogPath 


    Глава 12. Создание программы Setup и оптимизация приложения	293 

    В следующем фрагменте кода показано, как регистрировать события в Visual Basic: 

    Select Case Index Case 0 ' Начало регистрации Dim logMode As Long 
    ' Вычислить значение logMode logMode = cboLogMode.Listlndex + _ 
    &H10 * chkLogOverwrite.Value + _ 
    &H10 * chkLogThreadlD.Value ' Установить параметры протоколирования 
App.StartLogging txtLogTarget, logMode cmdAction(l).Enabled = True 
cmdAction(1).Default = True Case 1 ' Записать сообщение App.LogEvent 
txtLogText, _ 
    cboEventType.ItemData(cboEventType.Listlndex) End Select 


    12.2.5. Повышение производительности разработки 

    Microsoft Visual Basic предлагает два инструментальных средства, которые 
могут значительно повысить производительность разработки: 
    •   Visual SourceSafe (в редакции Enterprise) позволяет управлять 
изменениями & файлах исходного текста; 
    •   если известно, что приложение будет локализоваться или изменяться для 
других целей, в качестве хранилищ данных (например, текстовых материалов) 
можно использовать файлы ресурсов. 

    12.2.6. Использование Microsoft Visual SourceSafe 

    Microsoft Visual SourceSafe — проектно-ориентированная система управления 
версиями для коллективной разработки программного обеспечения. Как библиотека, 
Visual SourceSafe позволяет пользователям осуществлять контроль над файлами 
больших проектов, зарегистрированными в общем хранилище. Эта система 
прослеживает и хранит изменения в файлах таким образом, чтобы разработчики 
могли получить обзор хронологии развития файла и, в случае необходимости, 
вернуться к более ранним версиям файла. 

    12.2.7. Установка Visual SourceSafe 

    Чтобы можно было использовать Visual SourceSafe с Visual Basic, необходимо 
сначала установить файлы поддержки и базу данных управления исходным текстом 
на сервере, доступном для всех пользователей. Программа Visual Basic Setup 
обеспечивает опцию установки сервера SourceSafe. После установки сервера 
Visual SourceSafe и Visual Basic на каждой системе, которая будет использовать 
Visual SourceSafe, необходимо установить программное обеспечение клиента SourceSafe. 
    Для установки программного обеспечения клиента нужно выбрать 
SccAddin.SourceCode-ControlAddin в меню Add-lns. Надстройка SourceSafe 
добавляет меню SourceSafe в меню Add-lns и активирует команды Get, Check Out и 
Check In в меню Tools в среде Visual Basic. 

    12.2.8. Добавление проекта к Visual SourceSafe 

    Чтобы добавить проект к Visual SourceSafe, нужно выбрать команду Add 
Project to SourceSafe в меню SourceSafe. Файлы будут скопированы в проект SourceSafe. 


    294 Оптимизация приложения 


    Изменение файла 

    Для модификации файла, который был добавлен к проекту, его сначала 
необходимо скопировать на локальную систему. Для этого нужно выбрать Check Out 
в меню Tools. SourceSafe копирует последнюю версию файла на компьютер 
разработчика. По окончании внесения изменений нужно выбрать команду Check In, 
чтобы копировать файл обратно на сервер и удалить локальную версию. 

    12.2.9. Использование файлов ресурсов 

    Если планируется распространять приложение на международном рынке, имеется 
возможность уменьшить объем времени, требуемый для локализации приложения. 
Вместо использования литеральных данных в программном коде такую информацию, 
как строки и растровые рисунки, можно хранить в файле ресурсов. Для загрузки 
данных в период выполнения в приложении могут использоваться специальные 
функции. Таким образом, можно легко изменить данные в файле ресурсов без 
изменения фактического программного кода. 

    Примечание: В папке Visual Basic \Samples\Pguide\Atm\ имеется примерное 
приложение Atm.vbp, в котором используются файлы ресурсов. 


    Создание файлов ресурсов 

    Чтобы создать файл ресурсов: 
    1. Создать файл определения ресурса (* ,гс), который содержит все 
строковые ресурсы приложения. Самый простой способ создания файла определения 
ресурса — использовать редактор ресурса, например поставляемый с Microsoft 
Visual C++. 
    2. Используя компилятор ресурса, преобразовать файл определения ресурса в 
файл ресурса (* .res). Для этого можно использовать компилятор ресурса 
(Rc.exe), который поставляется с Visual Basic редакций Professional и Enterprise. 
    Чтобы подключить файл ресурса к проекту: 
    1. В меню Project выбрать Add File. 
    2. В окне диалога Add File в окне Files of type выбрать Resource Files (*.RES). 
    3. Выбрать файл ресурсов, который требуется добавить к проекту, и нажать Open. 

    Использование функций для работы с ресурсами 

    Visual Basic предоставляет несколько функций, которые позволяют загрузить 
информацию из файла ресурсов в период выполнения. Эти функции перечислены в 
следующей таблице. 

    Функция          | Назначение                                              
                                                   , 
    'LoadResString	Загружает строку. 
    LoadResPicture	Загружает изображение емых данных (0=bitmap,	Второй 
параметр LoadResPicture определяет тип загружа-1,=1соп, 2=cursor). 
    LoadResData	Загружает общие данные 
(байтовый		массив),	такие,	например,	как файл	.wav. 

    Например, в следующем примере в событии Form_Load загружается строка 
ресурса 100 и присваивается свойству Caption элемента управления Label. Далее 
загружается ресурс-изображение 100 (формат графики icon) и присваивается 
свойству Picture элемента управления Image. 

    Private   Sub   Form_Load() 
    Labell.Caption = LoadResString(100) 
    Imagel.Picture = LoadResPicture(100, 1) End Sub 

