当我在Visual Studio 2010中创建全新的ATL项目时,资源ID 102和105被忽略了。这是故意还是错误?这些ID在项目后期是否有任何用途?我可以重新排序编号以使用它们吗?这是一个名为TestID的新项目的资源文件:
//{{NO_DEPENDENCIES}}
// Microsoft Visual C++ generated include file.
// Used by TestID.rc
//
#define IDS_PROJNAME 100
#define IDR_TESTID 101
#define IDR_PREVIEW_HANDLER 103
#define IDR_THUMBNAIL_HANDLER 104
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 201
#define _APS_NEXT_COMMAND_VALUE 32768
#define _APS_NEXT_CONTROL_VALUE 201
#define _APS_NEXT_SYMED_VALUE 106
#endif
#endif
省略ID 102,然后将下一个ID(_APS_NEXT_SYMED_VALUE)设置为106,因此也省略了105。
最佳答案
原因很简单,它取决于您要创建的ATL项目。
我只是查看了resource.h文件的文件夹\ VC \ VCWizards \ AppWiz \ ATL \ ATLProject \ templates \ 1033 \。
[!if SERVICE_APP]
#define IDS_SERVICENAME 100
[!else]
#define IDS_PROJNAME 100
[!endif]
#define IDR_[!output UPPER_CASE_SAFE_PROJECT_IDENTIFIER_NAME] 101
[!if PREVIEW_HANDLER]
#define IDR_PREVIEW_HANDLER 103
[!endif]
[!if THUMBNAIL_HANDLER]
#define IDR_THUMBNAIL_HANDLER 104
[!endif]
[!if SEARCH_HANDLER]
#define IDR_FILTER_HANDLER 105
[!endif]
如您所见,有一些由应用向导代码执行的条件,其中可能还包括带有104和105的ID。
因此,为了适合所有情况,下一个免费ID设置为106。
但是您可以随意重新编号所有现有资源。