Вопрос

Я пытаюсь извлечь изображение 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.

Спасибо.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top