230______________________________________________________Глава 9

Поскольку компоновщик ВР также умеет работать с ресурсами (для этого введена директива {$R RESFNAME[.RES]}], удобнее использовать компилятор BRCC.EXE. Для его вызова дайте команду ДОС

BRCC MyRes

(предполагается, что путь к католгу размещения файла BRCC.EXE указан в переменной PATH). В результате такого обращения компилятор откомпилирует файл MYRES.RC в файл ресурса MYRES.RES.

9.4.2. Использование ресурсов

Чтобы компоновщик ВР пристыковал ресурсный файл к исполняемой программе, вставьте в ее текст директиву $R, например:

{$R MyRes}

Для получения строки из строкового ресурса используется вызов функции LoadStrng. Следующая программа выведет на экран содержимое строкового ресурса, описанного на с.228:

Uses WinAPI;

{$R MyRes} var

Buf: array [Byte] of Char;

k : Integer;

begin

for k := 1 to 5 do begin

if LoadString(hinstance, k, Buf, SizeOf(Buf))<>0 then

WriteLn(Buf) end;

end.

Доступ к ресурсам пользователя сложнее и выполняется в такой последовательности:

• с помощью FindResource создается дескриптор ресурса;

• если ресурс найден (FindResource возвращет не ноль), он загружается в память обращением к LoadResource, которая возвращает дескриптор выделенного ресурсу блока памяти;

• с помощью LockResource получаем физический адрес блока памяти и работаем с ресурсом;

• после использования ресурса удаляем его из памяти обращением к

FreeResource.

Следующая программа прочитает и распечатает содержимое ресурса, описанного на с.229:

Uses WinAPI;

{$R MyRes! type

PMyRes ^TMyRes;