Вопрос
Я пытаюсь извлечь изображение gif, встроенное в качестве ресурса в мою dll ISAPI, используя технологию WebBroker.Ресурс был добавлен в DLL с использованием следующего кода RC:
LOGO_GIF RCDATA logo.gif
Используя проводник ресурсов, я проверил, что он правильно находится в DLL.
использование следующего кода всегда вызывает исключение «ресурс не найден» (с использованием Delphi 2009)
var
rc : tResourceStream;
begin
rc := tResourceStream.Create(hInstance,'LOGO_GIF','RCDATA');
end;
Решение
РКДАТА - это предопределенный тип ресурса с целочисленным идентификатором RT_RCDATA (объявлен в модуле «Типы»).
Попробуйте получить к нему доступ следующим образом:
rc := tResourceStream.Create(hInstance,'LOGO_GIF', MakeIntResource(RT_RCDATA));
Другие советы
Если я правильно помню, вы на самом деле имеете дело с экземпляром веб-сервера, а не с dll.Я не помню, как это обойти, но это объяснение того, почему это не работает.Надеюсь, кто-то другой сможет опираться на это.
Либо используйте свой собственный произвольный тип ресурса, например GIF:
LOGO_GIF GIF logo.gif
затем используйте
rc := tResourceStream.Create(hInstance,'LOGO_GIF','GIF');
или просто используйте
rc := tResourceStream.Create(hInstance,'LOGO_GIF', RT_RCDATA);
или просто используйте
rc := tResourceStream.Create(hInstance,'LOGO_GIF', RT__RCDATA);
Этот.Работает как шарм.
У D2009 тоже была та же проблема, но он пытался получить TStringsList из DLL.
Спасибо.