2009-09-06 6 views
5

저는 VC++ Express Edition으로 컴파일 할 DLL에 임베드하고 싶은 일부 이진 파일을 가지고 있습니다.VC++ Express에서 바이너리 데이터를 포함하고 액세스하는 가장 깨끗한 방법은 무엇입니까?

데이터를 코드와 함께 컴파일하는 배열로 변환하는 것과 같은 몇 가지 방법이 있지만 만족스럽지 않고 쉽고 간단한 솔루션이 누락 된 것처럼 느껴집니다.

가장 손쉬운 방법은 무엇입니까?

답변

14

난이 옵션 인 경우 알고 있지만, (아마도 및 Windows에서 쉽게 사용 가능한) 유닉스 출력에 C 헤더 옵션이 있습니다 xxd 프로그램하지 않습니다

xxd -i file.bin > file.h 

file.h이의 정의가 포함됩니다 데이터가 포함 된 unsigned char의 배열과 배열의 길이를 나타내는 unsigned int이 있습니다. 물론, file.c 출력에 더 좋을 수 있으며으로 다음 file.h 쓰기 :

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

변수의 이름은 입력 파일에 따라 달라집니다. 희망이 도움이됩니다.

+1

Heh. Google 데스크톱 내 하드 드라이브를 검색했는데 이미 xxd가 있습니다! Vim과 함께 왔어. 감사! – Nosredna

+0

Vinay Sajip이 제공 한 리소스에 대한 답변은 내가 원하는 부분에 가깝지만 xxd를 사용하는 것은 너무 쉽기 때문에 내가 작성한 사용자 지정 코드를 사용하여 대신 사용하기로 결정했습니다. 파일 크기가 더 큰 경우 이진 리소스를 선택할 수 있습니다. – Nosredna

2

마지막으로이 작업을 수행해야 할 때 (나는 얼마 전) 이진 리소스를 사용했습니다. 이 접근법을 설명하는 article이 있습니다. 그래도 나는 더 나은 일을하는 최근의 일이 있는지 잘 모르겠다.

+0

유망입니다. 감사. – Nosredna

관련 문제