如何在c++中从资源文件中加载游标组?
How can I load a cursor group from resource file in C++?
我试图从Visual c++ (Windows)中的资源文件(.rc)加载自定义光标。资源正在被正确编译到我的主。exe中,因为我可以成功加载其他资源类型(即。自定义资源类型(如"PNG")。
在我的。rc文件中有:
#define IDI_CURSOR1 1000
IDI_CURSOR1 CURSOR "Resources\Cursors\MainCursor.cur"
在我的。cpp文件中有:
HCURSOR mainCursor = LoadCursor( NULL, MAKEINTRESOURCE( IDI_CURSOR1 ) );
但是LoadCursor()
总是返回NULL
。调用HRESULT_FROM_WIN32( GetLastError() )
返回"指定的资源类型在资源文件中找不到"。
现在,我尝试加载它使用:
FindResource( NULL, MAKEINTRESOURCE( IDI_CURSOR1 ), L"CURSOR" );
,但我得到相同的错误。
在挖掘之后,我找到了一种方法来打印我模块中的所有资源,我找到了我的光标。它正在加载,但作为类型"12",根据这一点:http://www.csn.ul.ie/~caolan/pub/winresdump/winresdump/doc/resfmt.txt是一个RT_GROUP_CURSOR
。这里还有一个类型为"1"的RT_CURSOR
。作为确认,我尝试使用:
FindResource( NULL, MAKEINTRESOURCE( IDI_CURSOR1 ), "#12" );
并没有发现错误。
好,所以光标正在加载,但LoadCursor()
似乎没有寻找类型"12"。它在寻找什么类型,我如何让CURSOR
映射到正确的类型?
我认为你应该有实例参数定义以及为您的自定义光标,通常当你加载标准游标,它是可以有NULL作为第一个参数,但不为自定义的
。
LoadCursor( hInstance, MAKEINTRESOURCE( IDI_CURSOR1 ) );
是的,你是对的。要加载自定义游标,资源类型应该是#12
。也就是RT_GROUP_CURSOR
。在代码中使用此资源类型而不是RT_CURSOR
相关文章:
- std::原子加载和存储都需要吗
- 如何加载(或映射)文件部分的最大大小,但适合在Windows上的RAM
- C++ 雷神库 - 使用资源加载器类时出现问题(不命名类型)
- 为什么加载SDF会导致Mobilizer创建闭环错误
- C++atioglxx.pdb未加载错误glBufferData OpenGL
- 如何使用tinyxml2从XML加载父实体和子实体
- 如何在C++中使用pybind11加载一个pickle python列表
- 系统.将数组移交给c#中动态加载的c++DLL时发生AccessViolationException
- 当我尝试加载内核模块时,如何修复C++中的这个 malloc() 错误?
- 树莓上的 Libtorch 无法加载 pt 文件,但在 ubuntu 上工作
- Python ctypes:不会按预期加载 dll
- 为什么会出现 gettnig 运行时错误:加载类型为"_Bit_type"(stl_bvector.h) 的空指针?
- 我的程序有一个保存配置文件的GUI,如何双击此配置文件以直接加载带有配置数据的GUI?
- 保存/加载大量短数组到二进制文件
- 使用 SDL2 和SDL_image C++加载图像
- 无法使用加载库卸载注入的 dll (C++)
- 是否有原子加载非原子值的函数?
- 将 bmp 文件加载到 TSpeedButton 中
- 有没有办法在不重新启动或注销的情况下加载游标?
- 如何在c++中从资源文件中加载游标组?