我按照教程here了解如何在EXE中包含文件。虽然我成功地获得了一个PNG图像编译,但在使用它时,我却不成功。当我将资源复制到Web响应中时,为什么会出现访问冲突?
MyResources.rc
LOGO_PNG RCDATA Resources\Logo.png
MyConsoleUnit.pas
const
RES_LOGO_PNG = 'LOGO_PNG';
implementation
{$R *.dfm}
{$R 'MyResources.res' 'MyResources.rc'}
现在,这就是事情对我来说有点混乱。我必须处理所有流,没有文件。我已经嵌入此PNG图像Logo.png
作为此资源作为内容(作为流)传回,当从网络服务器请求/Logo.png
时。我也跟着这个一个非常基本的教程:
procedure TMyWebConsole.MyWebConsoleLogoAction(Sender: TObject;
Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
var
RS: TResourceStream;
begin
RS := TResourceStream.Create(HInstance, RES_LOGO_PNG, RT_RCDATA);
try
Response.ContentType:= 'image/png';
RS.SaveToStream(Response.ContentStream);
finally
RS.Free;
end;
end;
的问题是,当这个函数被调用(在SaveToStream
)我得到一个访问冲突。客户端的Web浏览器收到与“PNG文件”内容相同的错误消息。
那么为什么这样做呢?我究竟做错了什么?
+1和接受(很快),作品像一个魅力,谢谢! – 2012-03-13 17:34:31