2009-09-06 3 views

risposta

14

Non so se questa è un'opzione, ma il programma xxd ha un'opzione per un colpo di testa di uscita C Unix (e, probabilmente, facilmente avaliable su Windows):

xxd -i file.bin > file.h 

file.h conterrà la definizione di un array di unsigned char contenente i dati e un unsigned int che indica la lunghezza dell'array. Naturalmente, può essere meglio per l'output file.c e poi scrivere file.h come:

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

I nomi delle variabili dipendono dal file di input. Spero che questo ti aiuti.

+1

Heh. Google Desktop ha cercato il mio disco rigido e ho già xxd! È venuto con Vim. Grazie! – Nosredna

+0

La risposta alle risorse data da Vinay Sajip è più vicina a quello che stavo chiedendo, ma usare xxd è così facile che ho deciso di bloccare il codice personalizzato che avevo scritto e usarlo al suo posto. Se i miei file fossero più grandi, potrei scegliere le risorse binarie. – Nosredna

2

L'ultima volta che ho dovuto fare questo (qualche tempo fa) ho usato risorse binarie. Ecco uno article che descrive l'approccio. Non sono sicuro se ci sia qualcosa di più recente che faccia meglio, però.

+0

Questo è promettente. Grazie. – Nosredna