2009-09-06 22 views
5

Mam kilka plików binarnych, które chciałbym osadzić w bibliotece dll Kompiluję z VC++ Express Edition.Jaki jest najczystszy sposób dołączania i uzyskiwania dostępu do danych binarnych w VC++ Express?

Mam kilka sposobów na zrobienie tego (jak konwersja danych na tablice, które kompiluję wraz z kodem), ale nie jestem zadowolony i czuję, że prawdopodobnie brakuje mi prostego, prostego rozwiązania.

Jaki jest najczystszy i najłatwiejszy sposób na zrobienie tego?

Odpowiedz

14

ja nie wiem, czy jest to opcja, ale Unix (i zapewne łatwo dostępna w systemie Windows) Program xxd ma możliwość wyjścia nagłówek C:

xxd -i file.bin > file.h 

file.h będzie zawierał definicję tablica zawierająca dane i unsigned char, która informuje o długości tablicy. Oczywiście, może być lepiej na wyjście do file.c a następnie napisać file.h jak:

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

Nazwy zmiennych zależą od pliku wejściowego. Mam nadzieję że to pomoże.

+1

Heh. Google Desktop Przeszukał mój dysk twardy i już mam xxd! Przyszedł z Vimem. Dzięki! – Nosredna

+0

Zasoby odpowiedzi udzielone przez Vinaya Sajipa są bliższe temu, o co prosiłem, ale użycie xxd jest tak proste, że zdecydowałem się na skopiowanie niestandardowego kodu, który napisałem i używam go zamiast tego. Gdyby moje pliki były większe, mógłbym wybrać zasoby binarne. – Nosredna

2

Ostatni raz musiałem to zrobić (jakiś czas temu) użyłem zasobów binarnych. Oto article, który opisuje podejście. Nie jestem pewien, czy jest coś świeższego, co jest lepsze.

+0

To jest obiecujące. Dzięki. – Nosredna

Powiązane problemy