FPC-ресурсы

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

FPC-ресурсы

Сообщение hinst » 24.10.2011 22:00:33

Попытался использовать FPC-ресурсы. Создал файл ресурсов с расширением .res одной программкой. В файле две картинки. Прописал им названия. Прописал путь к файлу ресурсов в модуле
{$R yesno_panel.res}
Проект компилируется. Проблема в том, что когда я пытаюсь загрузить данные
Код: Выделить всё
  stream := TResourceStream.Create(HINSTANCE, upperCase('yesno_panel_bitmap_yes'), 'BITMAP');

то валится исключение, типа ресурс не найден.
И можно было бы свалить ошибку на мою личную тупость, если бы не одна делать: открываю редактором прямо-таки исполняемый файл (тот самый, с расширением .exe который), и вижу в нём в разделе Bitmap эти две картинки. И названы они как надо yesno_panel_bitmap_yes, только капсом, и редактор показывает, что они сгенерированы из такой строки
YESNO_PANEL_BITMAP_NO BITMAP "?"
то есть, и имя, и тип совпадают, только имя исходного файла "?", ну это и понятно, потому что после компиляции ресурсов информация об исходных файлах теряется. В связи с этим, есть у меня подозрение, что это FPC глючит :shock:
Ресурс есть, а он не видит его :shock:
Аватара пользователя
hinst
энтузиаст
 
Сообщения: 781
Зарегистрирован: 12.04.2008 18:32:38

Re: FPC-ресурсы

Сообщение Mr.Smart » 24.10.2011 22:26:09

FPC здесь не причём т.к. он использует непосредственно функции WinAPI для поиска и загрузки ресурса.
Возможно у вас не соответствует тип или в имени что-то не так, а возможно "одна программа" создаёт ресурсы не того типа!
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: FPC-ресурсы

Сообщение Sergei I. Gorelkin » 24.10.2011 23:26:24

Тип ресурса (последний аргумент) должен быть PChar(RT_BITMAP).
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
 
Сообщения: 1406
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Re: FPC-ресурсы

Сообщение hinst » 25.10.2011 23:16:54

вот оно как всё не очевидно оказалось...
Код: Выделить всё
RT_BITMAP       =  2;

да ещё и PChar от двух. Тем не менее, спасибо
Аватара пользователя
hinst
энтузиаст
 
Сообщения: 781
Зарегистрирован: 12.04.2008 18:32:38


Вернуться в Free Pascal Compiler

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6

Рейтинг@Mail.ru