题
我正在尝试使用 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。
谢谢。
不隶属于 StackOverflow