0

当我在 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 也被忽略。

4

1 回答 1

3

原因很简单,这取决于您要创建的 ATL 项目。我刚刚查看了文件夹 \VC\VCWizards\AppWiz\ATL\ATLProject\templates\1033\ 的 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。

但是您可以自由地重新编号所有现有资源。

于 2015-05-04T13:26:03.377 回答