2009-09-06 9 views
5

J'ai des fichiers binaires que j'aimerais intégrer dans une DLL que je compile avec VC++ Express Edition.Quel est le moyen le plus propre d'inclure et d'accéder aux données binaires dans VC++ Express?

J'ai quelques façons de le faire (comme la conversion des données en tableaux que je compile avec le code), mais je ne suis pas satisfait et j'ai l'impression que je manque probablement une solution simple et directe.

Quel est le moyen le plus propre et le plus facile de faire cela?

Répondre

14

Je ne sais pas si cela est une option, mais le programme Unix (et probablement facilement avaliable sous Windows) xxd a une option pour produire un en-tête C:

xxd -i file.bin > file.h 

file.h contiendra la définition de un tableau de unsigned char contenant les données et un unsigned int qui vous indique la longueur du tableau. Bien sûr, il peut être préférable de sortie file.c puis écrire file.h comme:

extern unsigned char file[]; 
extern unsigned int file_len; 

Les noms des variables dépendent du fichier d'entrée. J'espère que cela t'aides.

+1

Heh. Google Desktop a recherché mon disque dur et j'ai déjà xxd! Entré avec Vim. Merci! – Nosredna

+0

La réponse de ressources donnée par Vinay Sajip est plus proche de ce que je demandais, mais l'utilisation de xxd est si facile que j'ai décidé de supprimer le code personnalisé que j'avais écrit et de l'utiliser à la place. Si mes fichiers étaient plus gros, je pourrais choisir les ressources binaires. – Nosredna

2

La dernière fois que j'ai dû faire cela (il y a quelques temps) j'ai utilisé des ressources binaires. Voici un article qui décrit l'approche. Je ne suis pas sûr s'il y a quelque chose de plus récent qui le fait mieux, cependant.

+0

C'est prometteur. Merci. – Nosredna

Questions connexes