将“资源”文件添加到 C++ Visual Studio 项目

问题描述 投票:0回答:1

我使用的是 Visual Studio 2022,并且我有一个使用 C++ 代码构建的项目。 代码查找一个数据文件“C:/MyData/data.dat”,绝对路径“C:/MyData/data.dat”写在.cpp源码中。

我想将文件 data.dat 合并到 .exe 文件中(使其独立且可移植),并告诉 exe 文件在“自身内部”查找 data.dat。我该怎么做?我应该用什么替换 .cpp 文件中的“C:/MyData/data.dat”。

谢谢你

c++ visual-studio resources
1个回答
0
投票

例如,您可以 a) 在 .RC 文件中添加资源

FILE DATA "c:\\file.dat"

和 b) 在运行时使用 FindResourceLoadResource 以及 LockResourceSizeOfResource 加载它。

auto h1 = FindResource(GetModuleHandle(nullptr),L"FILE",L"DATA");
auto h2 = LoadResource(GetModuleHandle(nullptr),h1);
void* ptr = LockResource(h2);
auto sz = SizeOfResource(GetModuleHandle(nullptr),h2);
// ....
// use ptr. No free needed.
© www.soinside.com 2019 - 2024. All rights reserved.