gpt4 book ai didi

c++ - SDL 和 Visual Studio 2010 资源

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:54:51 25 4
gpt4 key购买 nike

我有一个简单的问题。我在我的 C++ 程序中使用 SDL 和 SDL_image,并且可以从单个 png 文件加载图像。

SDL_Surface *dot = NULL;
dot = load_image("dot.png");

但是,如果我将它添加到资源中,如何加载 png 文件呢?所以我不想存储在 exe 旁边的 png 文件中。是否可以从资源中加载?

尝试过

dot = load_image(MAKEINTRESOURCE(IDB_PNG1));

但是没用。

最佳答案

完全可以从 Windows 资源将图像或其他内容加载到 SDL 中。为此,您需要获取原始数据并将其传递给适当的 RWOPS。

HMODULE hModule = GetModuleHandle(_T("myapp.exe"));

HRSRC hWhite = FindResource(hModule, MAKEINTRESOURCE(IDB_WHITE_PNG), _T("PNG"));
unsigned int white_size = SizeofResource(hModule, hWhite);
HGLOBAL hgWhite = LoadResource(hModule, hWhite);
unsigned char* white_data = (unsigned char*)LockResource(hgWhite);

SDL_Surface* white = IMG_Load_RW(SDL_RWFromConstMem(white_data, white_size), 1);

假设您的 *.rc 文件中有类似的内容:

IDB_WHITE_PNG  PNG "White.png"

关于c++ - SDL 和 Visual Studio 2010 资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11364095/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com