Salut,
J'ai creé un programme qui doit etre modifié ulterieurement pour inclure des nouveau fichiers.
En cherchant dans le forum, je décide que la meilleure solution est d'employer les ressources, quelques fonctions ont ete fournis ...
donc, pour l'editeur j'emploie :
*BeginUpdateResource
*UpdateResource
*EndUpdateResource
tout semble bien fonctionner puisque le fichier exe cible change de taille ...
Coté programme cible, j'ai essayé 2 methodes qui aboutissent au meme resultat : ressource introuvable
*Méthode 1 avec le constructeur de la classe TResourceStream
*Méthode 2 en employant les API :FindResource, LoadResource et LockResource.
J'ai déja employé les ressources, mais en utilisant les fichiers .RES et l'ajout de directive {$R fichier.res}, et tout etait dans l'ordre, donc je pense que le probleme vient de l'éditeur.
Voici le code de l'éditeur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 function AddFile(SrcFile, DestFile, ResName: String): Boolean; Var DestHandle: Integer; ResStream: TMemoryStream; begin Result := False; DestHandle := BeginUpdateResource(PChar(DestFile), False); If DestHandle = 0 then Raise Exception.Create('Erreur de lecture de :'+DestFile); ResStream := TMemoryStream.Create; Try ResStream.LoadFromFile(SrcFile); if not UpdateResource(DestHandle, RT_RCDATA, PChar(ResName), 0, ResStream.Memory, ResStream.Size) then Begin EndUpdateResource(DestHandle, True); Raise Exception.Create('Error while adding the resource'); End; EndUpdateResource(DestHandle, False); Result := True; Finally ResStream.Free; End; end;
Partager