C++ visualc&x2B+;资源文件符号

C++ visualc&x2B+;资源文件符号,c++,visual-studio,resources,C++,Visual Studio,Resources,我对Visual Studio(2013)资源文件有点困惑。我在我的项目中添加了一个新的位图,它有自己的符号IDB_BITMAP1,尽管我不知道如何在MAKEINTRESOURCE宏中使用它。我必须用它的号码,101。我用记事本打开了resource.h文件,但没有用于该文件的#define指令。我必须为我的资源文件手动添加常量,还是VS自动为我添加常量,而我只是错过了一些东西?这是一种典型的方法: 头文件: // resources.h #ifndef _RESOURCES_H #define

我对Visual Studio(2013)资源文件有点困惑。我在我的项目中添加了一个新的位图,它有自己的符号IDB_BITMAP1,尽管我不知道如何在MAKEINTRESOURCE宏中使用它。我必须用它的号码,101。我用记事本打开了resource.h文件,但没有用于该文件的#define指令。我必须为我的资源文件手动添加常量,还是VS自动为我添加常量,而我只是错过了一些东西?

这是一种典型的方法:

头文件:

// resources.h
#ifndef _RESOURCES_H
#define _RESOURCES_H

#define IDB_BITMAP1 101

#endif
资源文件:

// resources.o
IDB_BITMAP1 BITMAP DISCARDABLE ".\myPic.bmp"
源代码:

// other_file.cpp
#include "resources.h"
HBITMAP hBitmap = (HBITMAP) LoadImage(
    hInstance,
    MAKEINTRESOURCE(IDB_BITMAP1),
    IMAGE_BITMAP,
    0,
    0,
    LR_LOADFROMFILE);
不要忘记释放记忆,通过这样做

DeleteObject(hBitmap);

当位图不再使用时。

实际上我现在意识到,添加文件不会修改resource.h文件。我必须包含它,在MAKEINTRESOURCE中使用文件的id,然后点击编译按钮,它就可以工作了。

我知道如何手动操作,但我不知道VS是否自动为我执行此操作,或者我是否必须跟踪我的所有文件。如果你在任何地方都找不到#define IDB#u BITMAP1,那么当你尝试编译时,你的编译器应该抱怨吗?编译器无法解析IDB_BITMAP1是什么?然后你需要自己在一个头文件中定义它并包含它。谢谢,我的编译器找不到这个名字,但我想我可能需要包含一些东西。VS使用一些奇怪的.aps文件。再次感谢。