Visual Studio 2010 年新 ATL 项目的资源 ID 差距
Gap in resource IDs for a new ATL project in Visual Studio 2010
当我在 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项目。
我刚刚查看了 \VC\VCWizards\AppWiz\ATL\ATLProject\templates33\ 文件夹中的 resource.h 文件。
[!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]
如您所见,应用程序向导代码执行的条件语句可能还包含 ID 为 104 和 105 的代码。
因此,为了适应所有情况,下一个免费 ID 设置为 106。
但您可以自由地对所有现有资源重新编号。
当我在 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项目。 我刚刚查看了 \VC\VCWizards\AppWiz\ATL\ATLProject\templates33\ 文件夹中的 resource.h 文件。
[!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]
如您所见,应用程序向导代码执行的条件语句可能还包含 ID 为 104 和 105 的代码。 因此,为了适应所有情况,下一个免费 ID 设置为 106。
但您可以自由地对所有现有资源重新编号。