Разрыв в идентификаторах ресурсов для нового проекта ATL в Visual Studio 2010

Когда я создаю новый проект ATL в Visual Studio 2010, идентификаторы ресурсов 102 и 105 не учитываются. Это намеренно или ошибка? Эти идентификаторы служат какой-либо цели позже в проекте? Могу ли я изменить порядок нумерации, чтобы использовать их? Вот файл ресурсов для нового проекта с именем 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

Идентификатор 102 пропускается, затем следующий идентификатор (_APS_NEXT_SYMED_VALUE) устанавливается равным 106, поэтому 105 также пропускается.

0

Решение

Причина проста и зависит от проекта 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]

Как вы можете видеть, существуют условные выражения, выполняемые кодом приложения-мастера, которые могут включать в себя также идентификаторы с 104 и 105.
Таким образом, чтобы соответствовать всем случаям, следующий свободный идентификатор установлен на 106.

Но вы можете изменить нумерацию всех существующих ресурсов.

3

Другие решения


По вопросам рекламы [email protected]