>백엔드 개발 >C++ >C의 Windows 응용 프로그램 리소스에 텍스트 파일 데이터를 어떻게 포함합니까?

C의 Windows 응용 프로그램 리소스에 텍스트 파일 데이터를 어떻게 포함합니까?

DDD
DDD원래의
2024-11-24 12:05:11592검색

How do I embed text file data into a Windows application resource in C  ?

Windows 애플리케이션 리소스에 텍스트 파일 데이터 포함

C Windows 애플리케이션에서는 텍스트 파일을 실행 파일의 리소스 섹션에 직접 추가합니다. 이렇게 하면 데이터가 프로그램 바이너리의 필수 부분이 되어 외부 파일 로드 및 구문 분석이 필요하지 않습니다.

이를 달성하려면 Visual Studio의 리소스 편집기를 활용하거나 리소스에서 리소스를 수동으로 정의할 수 있습니다. 스크립트 파일. 텍스트 파일을 리소스로 포함하는 단계는 다음과 같습니다.

  1. 리소스 파일 생성:

    • 새 리소스 생성 프로젝트 디렉토리에 있는 스크립트 파일(예: resources.rc).
    • 항목 추가 다음 구문을 사용하여 리소스 스크립트에 추가합니다.

      NameID TypeID Filename

    여기서:

    • NameID는 리소스를 식별하는 고유한 16비트 정수입니다.
    • TypeID는 리소스 유형을 식별하는 고유한 16비트 정수입니다. 매크로를 사용하여 프로젝트의 리소스 헤더 파일(예: resources.h)에서 이 유형을 정의할 수 있습니다.
    • 파일 이름은 포함하려는 텍스트 파일의 경로입니다.

    의 경우 예를 들어 다음을 포함할 수 있습니다. 항목:

    IDR_MYTEXTFILE TEXTFILE "data.txt"
  2. 리소스 파일 컴파일:

    • Visual Studio에서 리소스 스크립트 파일을 마우스 오른쪽 버튼으로 클릭하고 "리소스 파일 컴파일"을 선택하십시오. 이렇게 하면 텍스트 파일의 바이너리 데이터가 포함된 컴파일된 리소스 파일(.res)이 생성됩니다.
  3. 포함된 리소스 로드:

    • FindResource 및 LoadResource 함수를 사용하여 포함된 리소스에 대한 핸들을 검색합니다. 리소스.
    • LockResource 함수를 사용하여 리소스 데이터를 잠급니다.
    • 반환된 포인터를 사용하여 텍스트 파일의 바이너리 데이터에 액세스합니다.

예제 코드 조각은 다음과 같습니다.

HMODULE handle = GetModuleHandle(NULL);
HRSRC rc = FindResource(handle, MAKEINTRESOURCE(IDR_MYTEXTFILE), MAKEINTRESOURCE(TEXTFILE));
HGLOBAL rcData = LoadResource(handle, rc);
DWORD size = SizeofResource(handle, rc);
const char *data = (const char *)LockResource(rcData);

이 방법은 직접 허용되지 않습니다. 실행 파일 내에 포함된 데이터 수정. 필요한 경우 BeginUpdateResource, UpdateResource 및 EndUpdateResource 기능을 사용하여 업데이트를 수행할 수 있습니다.

위 내용은 C의 Windows 응용 프로그램 리소스에 텍스트 파일 데이터를 어떻게 포함합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.