当我在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。

但是您可以随意重新编号所有现有资源。

07-26 09:37
查看更多