如何从tWebModule中检索资源

时间:2020-03-06 14:19:51  来源:igfitidea点击:

我正在尝试使用WebBroker技术提取作为资源嵌入我的ISAPI dll中的gif图像。资源已使用以下RC代码添加到DLL:

LOGO_GIF RCDATA logo.gif

使用资源浏览器,我验证了它在DLL中的正确位置。

使用以下代码总是会引发异常,"找不到资源"(使用Delphi 2009)

var
  rc : tResourceStream;
begin
  rc := tResourceStream.Create(hInstance,'LOGO_GIF','RCDATA');
end;

解决方案

如果我没记错的话,我们实际上是在处理Web服务器实例,而不是dll。我不记得有什么解决方法,但这就是为什么不起作用的解释。希望其他人可以以此为基础。

RCDATA是预定义的资源类型,其整数ID为RT_RCDATA(以"类型"单位声明)。

尝试以这种方式访问​​它:

rc := tResourceStream.Create(hInstance,'LOGO_GIF', MakeIntResource(RT_RCDATA));

使用我们自己的任意资源类型,例如GIF:

LOGO_GIF GIF logo.gif

然后使用

rc := tResourceStream.Create(hInstance,'LOGO_GIF','GIF');

或者简单地使用

rc := tResourceStream.Create(hInstance,'LOGO_GIF', RT_RCDATA);

or simply use 
  
  rc := tResourceStream.Create(hInstance,'LOGO_GIF', RT__RCDATA);

这。奇迹般有效。

这里的D2009也有相同的问题,但是试图将TStringsList移出DLL。

谢谢。