Comment puis-je extraire une ressource dans un fichier au moment de l'exécution?
Je veux distribuer qu'un seul .exe, cependant, au moment de l'exécution, j'aimerais qu'il extraire une partie d'image intégrée des ressources pour les utilisateurs de lecteur de disque dur.
Utiliser Delphi TResourceStream. Il est constructeur de rechercher et de charger la ressource en mémoire, et c'est de la méthode SaveToFile fera de l'écriture sur le disque.
Quelque chose de similaire à ceci devrait fonctionner:
Si vous pouvez utiliser l'ID de la ressource à la place du nom, c'est un peu moins de mémoire. Dans ce cas, vous feriez resplace Créer avec CreateFromID, et de fournir à l'IDENTIFIANT numérique plutôt que le nom de la chaîne.
merci, Ken, l'air génial. Btw, Whhat valeur pour HInstance ?
Quelle que soit la valeur de l'OS que vous avez dit, @Leonix. HInstance est une variable globale qui Delphi initialise pour vous que votre programme démarre. C'est dans le SysInit unité.
Créer un TResourceStream. Vous aurez besoin de l'instance de module de poignée (généralement SysInit.HInstance pour l'actuel fichier EXE, ou bien ce que vous obtenez à partir de LoadLibrary ou LoadPackage), le type de ressource (comme rt_Bitmap ou rt_RCData), et, soit le nom de la ressource ou de l'IDENTIFIANT numérique. Appelez ensuite le ruisseau du SaveToFile méthode.
Utiliser Delphi TResourceStream. Il est constructeur de rechercher et de charger la ressource en mémoire, et c'est de la méthode SaveToFile fera de l'écriture sur le disque.
Quelque chose de similaire à ceci devrait fonctionner:
Si vous pouvez utiliser l'ID de la ressource à la place du nom, c'est un peu moins de mémoire. Dans ce cas, vous feriez resplace Créer avec CreateFromID, et de fournir à l'IDENTIFIANT numérique plutôt que le nom de la chaîne.
HInstance
est une variable globale qui Delphi initialise pour vous que votre programme démarre. C'est dans le SysInit unité.Créer un
TResourceStream
. Vous aurez besoin de l'instance de module de poignée (généralementSysInit.HInstance
pour l'actuel fichier EXE, ou bien ce que vous obtenez à partir deLoadLibrary
ouLoadPackage
), le type de ressource (commert_Bitmap
ourt_RCData
), et, soit le nom de la ressource ou de l'IDENTIFIANT numérique. Appelez ensuite le ruisseau duSaveToFile
méthode.Puis enregistrer l'image dans le disque.
Peut-être que cela pourrait être utile si vous avez besoin de travailler avec les ressources que lui-même.
Delphidabbler /ResourceFiles