首页  >  文章  >  后端开发  >  如何将文本文件作为资源嵌入到本机 Windows 应用程序中?

如何将文本文件作为资源嵌入到本机 Windows 应用程序中?

DDD
DDD原创
2024-11-17 20:15:02857浏览

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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn