Wie eine Ressource innerhalb eines tWebModule abrufen
-
01-07-2019 - |
Frage
Ich versuche, ein GIF-Bild als eine Ressource in meiner ISAPI dll-Technologie WebBroker eingebettet zu extrahieren. Die Ressource wurde den DLL hinzugefügt, um den folgenden RC Code verwendet:
LOGO_GIF RCDATA logo.gif
Mit Ressource-Explorer Ich überprüfte es in der DLL ist richtig.
mit dem folgenden Code immer eine Ausnahme auslöst, "Ressource nicht gefunden" (mit Delphi 2009)
var
rc : tResourceStream;
begin
rc := tResourceStream.Create(hInstance,'LOGO_GIF','RCDATA');
end;
Lösung
RCDATA ist ein vordefinierte Ressourcentyp mit einer ganzen Zahl von RT_RCDATA ID (in Types Einheit deklariert).
Versuchen Sie es auf diese Weise Zugriff auf:
rc := tResourceStream.Create(hInstance,'LOGO_GIF', MakeIntResource(RT_RCDATA));
Andere Tipps
Wenn ich mich richtig erinnere Sie es zu tun haben tatsächlich mit einer Instanz des Web-Servers, nicht die dll. Ich erinnere mich nicht, die Arbeit um zwar, aber das ist die Erklärung dafür, warum das nicht funktioniert. Hoffentlich kann jemand anderes dieses Builds aus.
So oder Ihren eigenen beliebiger Ressourcentyp wie GIF verwenden:
LOGO_GIF GIF logo.gif
Sie dann mit
rc := tResourceStream.Create(hInstance,'LOGO_GIF','GIF');
oder verwenden Sie einfach
rc := tResourceStream.Create(hInstance,'LOGO_GIF', RT_RCDATA);
oder verwenden Sie einfach
rc: = tResourceStream.Create (hInstance, 'LOGO_GIF', RT__RCDATA );
Dieses. Klappt wunderbar.
D2009 auch hier hatte das gleiche Problem, aber versuche TStringsList aus dem DLL zu erhalten.
Danke.