Domanda

Sto cercando di estrarre un'immagine GIF incorporata come risorsa nella mia dll ISAPI utilizzando la tecnologia WebBroker.La risorsa è stata aggiunta alla DLL utilizzando il seguente codice RC:

LOGO_GIF RCDATA logo.gif

Utilizzando Resource Explorer ho verificato che sia correttamente nella DLL.

l'utilizzo del codice seguente genera sempre un'eccezione, "risorsa non trovata" (utilizzando Delphi 2009)

var
  rc : tResourceStream;
begin
  rc := tResourceStream.Create(hInstance,'LOGO_GIF','RCDATA');
end;
È stato utile?

Soluzione

RCDATA è un predefinito tipo di risorsa con un ID intero di RT_RCDATA (dichiarato nell'unità Tipi).

Prova ad accedervi in ​​questo modo:

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

Altri suggerimenti

Se ricordo bene, in realtà hai a che fare con un'istanza del server web, non con la DLL.Tuttavia non ricordo il lavoro svolto, ma questa è la spiegazione del motivo per cui non funziona.Speriamo che qualcun altro possa partire da questo.

Utilizza il tuo tipo di risorsa arbitrario come GIF:

LOGO_GIF GIF logo.gif

quindi utilizzare

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

o semplicemente utilizzare

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

o semplicemente utilizzare

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

Questo.Funziona come un fascino.

Anche D2009 qui presentava lo stesso problema, ma stava cercando di estrarre TStringsList dalla DLL.

Grazie.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top