PDA

Ver la Versión Completa : Acceder a la ruta de un recurso de mi programa


broly7
06-04-2011, 15:49:51
Hola buenas, la cosa es bastante simple creo yo. Y esque he buscado por google algun ejemplo y no me sale nada de nada, incluso en la ayuda de Delphi u.u

Pues tengo un recurso ya compilado en mi programa y añadido en la implementation y tal.
Y tengo una función a la que hay que llamarla con un string, y ese string es la ruta que adquiere un archivo del sistema.
El caso es que ese archivo lo llevo dentro del programa, y si lo trato como un Tstreamresource, el compilador no me deja porque lo que tengo que declarar es un string. Entonces ¿cómo puedo ser capaz de sacar la ruta de mi recurso?

Espero que me haya explicado medianamente bien u.u!
Muchas gracias.

broly7
07-04-2011, 21:18:03
42 visitas
(Llorando en mi salón...)

oscarac
07-04-2011, 21:56:03
mmm
no entendi muy bien eso de "El caso es que ese archivo lo llevo dentro del programa"
segun lo que quiza entendi...te convendria usar archivos ini?

broly7
08-04-2011, 08:02:09
mmm
no entendi muy bien eso de "El caso es que ese archivo lo llevo dentro del programa"
segun lo que quiza entendi...te convendria usar archivos ini?

implementation

{$R *.dfm}
{$R Recursos.res}


COn esto quiero decire que recursos.res es un archivo compilado dentro de mi programa.
Y si quiero llamar al recurso con su ruta no sabría ni por donde empezar.

Encontré esta función que saca el recurso donde tu desees.
procedure ExtractFileFromResource(const resName, targetFile: string);
var
fStream: TFileStream;
rStream: TResourceStream;
begin
rStream := TResourceStream.Create(hInstance, resName, RT_RCDATA);
try
fStream := TFileStream.Create(targetFile, fmCreate);
try
fStream.CopyFrom(rStream, 0);
finally
fStream.Free();
end;
finally
rStream.Free();
end;
end;

Pero lo que quiero es llamarlo con esta función.

function InjectDll(PID:DWORD; sDll:ansistring):Boolean;

Como observarán (sDll) me pide un ansistring, y no sé que ruta poner para llamar al recurso, gracias.

oscarac
08-04-2011, 16:25:52
has probado dejando en blanco? tipo ('')

broly7
09-04-2011, 00:35:38
INjectDLL(1234,'')???
Me parece que no me has entendido xD