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

6rvt4ljy  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(159)

我在Visual Studio 2022上,我有一个用C++代码构建的项目。代码查找数据文件“C:/MyData/data.dat”,绝对路径“C:/MyData/data.dat”写在.cpp源代码中。
我想将文件data.dat合并到.exe文件中(使其自包含和可移植),并告诉exe文件在"自身内部“查找data.dat。我该如何做?我应该用什么来替换.cpp文件中的“C:/MyData/data.dat”?
谢谢你

p8h8hvxi

p8h8hvxi1#

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

FILE DATA "c:\\file.dat"

字符串
和B)在运行时用FindResourceLoadResourceLockResourceSizeOfResource加载它。

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.

相关问题