我正在尝试使用 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;
有帮助吗?

解决方案

RCDATA 是一个 预定义的 具有 RT_RCDATA 整数 ID 的资源类型(在类型单元中声明)。

尝试通过以下方式访问它:

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

其他提示

如果我没记错的话,您实际上正在处理 Web 服务器的实例,而不是 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 也有同样的问题,但正在尝试从 DLL 中获取 TStringsList。

谢谢。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top