我一直在尝试从我的资源中加载一个位图,以便在我的一个程序控件中将其设置为一个图标,现在很长一段时间没有成功。
到目前为止我做了什么:
首先,我进入了我的.rc文件的代码,并在相应的BMP部分添加了所有这样的位图。请注意,所有.bmp文件都保存为256色位图:
IDB_01d BMP "<path>"
然后,我进入我的Resource.h文件并为每个位图插入一个定义,如下所示:
#define IDB_01d 2000
添加资源后,这是我到目前为止在我的代码中尝试的内容:
HBITMAP hbmp = LoadBitmap(m_hInstance, MAKEINTRESOURCE(IDB_01d));
DWORD lastError = GetLastError();
m_weatherIcon.SetIcon(hbmp);
请注意,m_hInstance是我从_tWinMain方法获得的HINSTANCE。
但是,这不起作用。问题是目前的事实是,由于LoadBitmap返回NULL值,hbmp为NULL。
我添加了一个调用来获取最后一个错误,而我得到的错误代码始终是1813。我已经做了一些研究,似乎HINSTANCE可能是问题,但我不知道究竟是怎么回事。
有什么建议吗?
答案 0 :(得分:2)
你需要在.rc文件中声明
BMP
但您使用的是未知资源类型#include <iostream>
using namespace std;
struct abc {
int c : 4;
char x : 1;
int y : 1;
} v;
int main()
{
cout << sizeof v; // it prints 12 . why?
}