> 백엔드 개발 > C++ > 본문

기본 Windows 응용 프로그램에 텍스트 파일을 리소스로 포함하려면 어떻게 해야 합니까?

DDD
풀어 주다: 2024-11-17 20:15:02
원래의
860명이 탐색했습니다.

How can I embed text files as resources in native Windows applications?

기본 Windows 애플리케이션에 텍스트 파일을 리소스로 포함

기본 Windows 프로그래밍에서는 텍스트 파일을 리소스로 바이너리에 포함할 수 있습니다. , 애플리케이션 내에서 편리한 액세스 및 처리가 가능합니다. 이는 사용자 정의 리소스 생성을 통해 달성됩니다.

텍스트 파일을 포함하려면 리소스 파일(.rc)을 생성하고 다음 형식으로 항목을 추가합니다.

nameID typeID filename
로그인 후 복사

의 경우 예:

IDC_MYTEXTFILE TEXTFILE "mytextfile.txt"
로그인 후 복사

여기서:

  • IDC_MYTEXTFILE은 고유합니다. 리소스에 대한 16비트 식별자
  • TEXTFILE은 사용자 정의 리소스 유형(255보다 큰 숫자 사용)입니다.
  • "mytextfile.txt"는 텍스트 파일의 경로입니다

런타임 중에 포함된 텍스트 파일을 로드하고 액세스하려면:

#include <windows.h>
#include <cstdio>
#include "resource.h"

void LoadFileInResource(int name, int type, DWORD& size, const char*& data)
{
    HMODULE handle = GetModuleHandle(NULL);
    HRSRC rc = FindResource(handle, MAKEINTRESOURCE(name), MAKEINTRESOURCE(type));
    HGLOBAL rcData = LoadResource(handle, rc);
    size = SizeofResource(handle, rc);
    data = static_cast<const char*>(LockResource(rcData));
}

int main()
{
    DWORD size = 0;
    const char* data = NULL;
    LoadFileInResource(IDC_MYTEXTFILE, TEXTFILE, size, data);

    char* buffer = new char[size+1];
    memcpy(buffer, data, size);
    buffer[size] = 0;
    printf("Contents of text file: %s\n", buffer);

    delete[] buffer;
    return 0;
}
로그인 후 복사

내장된 데이터는 실행 가능한 바이너리 내에 존재하기 때문에 직접 수정할 수 없습니다. 리소스를 수정하려면 BeginUpdateResource(), UpdateResource(), EndUpdateResource() 함수를 사용하세요.

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

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿