Comment récupérer une ressource depuis un tWebModule
-
01-07-2019 - |
Question
J'essaie d'extraire une image gif intégrée en tant que ressource dans ma dll ISAPI à l'aide de la technologie WebBroker. La ressource a été ajoutée à la DLL à l'aide du code RC suivant:
LOGO_GIF RCDATA logo.gif
À l'aide de l'explorateur de ressources, j'ai vérifié qu'il se trouvait correctement dans la DLL.
à l'aide du code suivant lève toujours une exception, "ressource non trouvée". (avec Delphi 2009)
var
rc : tResourceStream;
begin
rc := tResourceStream.Create(hInstance,'LOGO_GIF','RCDATA');
end;
La solution
RCDATA est un prédéfini . type de ressource avec un ID entier de RT_RCDATA (déclaré dans l'unité Types).
Essayez d'y accéder de cette façon:
rc := tResourceStream.Create(hInstance,'LOGO_GIF', MakeIntResource(RT_RCDATA));
Autres conseils
Si je me souviens bien, il s’agit bien d’une instance du serveur Web, pas de la dll. Je ne me souviens pas du travail effectué, mais c’est la raison pour laquelle cela ne fonctionne pas. Espérons que quelqu'un d'autre puisse en tirer parti.
Utilisez votre propre type de ressource arbitraire tel que GIF:
LOGO_GIF GIF logo.gif
utilisez ensuite
rc := tResourceStream.Create(hInstance,'LOGO_GIF','GIF');
ou utilisez simplement
rc := tResourceStream.Create(hInstance,'LOGO_GIF', RT_RCDATA);
ou utilisez simplement
rc: = tResourceStream.Create (hInstance, 'LOGO_GIF', RT__RCDATA );
Ceci. Fonctionne comme un charme.
D2009 avait également le même problème, mais essayait d'extraire TStringsList de la DLL.
Merci.