Ошибка с определением
От: Niten  
Дата: 10.04.12 15:02
Оценка: -2
Есть структура
typedef struct _HEADER_ {
    LPTSTR  lptcHeaderName;
    UINT    iHeaderWidth;
    UINT    iAlignText;
    BOOL    bAutoSize;
    STLArray <LPsHeader>  lpsSubHeaders;
} tsHeader, *LPsHeader;

При компиляции выдает ошибку что LPsHeader не объявленный идентификатор.
Как можно решить данную проблему?
Re: Ошибка с определением
От: Caracrist https://1pwd.org/
Дата: 10.04.12 15:06
Оценка: 1 (1)
Здравствуйте, Niten, Вы писали:

N>Как можно решить данную проблему?


typedef struct _HEADER_ {
    LPTSTR  lptcHeaderName;
    UINT    iHeaderWidth;
    UINT    iAlignText;
    BOOL    bAutoSize;
    STLArray <_HEADER_*>  lpsSubHeaders;
} tsHeader, *LPsHeader;
~~~~~
~lol~~
~~~ Single Password Solution
Re[2]: Ошибка с определением
От: Niten  
Дата: 10.04.12 15:13
Оценка: :)
Здравствуйте, Caracrist, Вы писали:

C>Здравствуйте, Niten, Вы писали:


N>>Как можно решить данную проблему?


C>
C>typedef struct _HEADER_ {
C>    LPTSTR  lptcHeaderName;
C>    UINT    iHeaderWidth;
C>    UINT    iAlignText;
C>    BOOL    bAutoSize;
C>    STLArray <_HEADER_*>  lpsSubHeaders;
C>} tsHeader, *LPsHeader;
C>


Сидел тупил целый день
Спасибо огромное.
Помогло.
Re: Ошибка с определением
От: Кодт Россия  
Дата: 10.04.12 19:44
Оценка: 1 (1)
Здравствуйте, Niten, Вы писали:

N>Есть структура

N>
N>typedef struct _HEADER_ {
N>    LPTSTR  lptcHeaderName;
N>    UINT    iHeaderWidth;
N>    UINT    iAlignText;
N>    BOOL    bAutoSize;
N>    STLArray <LPsHeader>  lpsSubHeaders;
N>} tsHeader, *LPsHeader;
N>

N>При компиляции выдает ошибку что LPsHeader не объявленный идентификатор.
N>Как можно решить данную проблему?

Зачем писать на С++ в сишном стиле, если, конечно, это не поддержка легаси-кода?
Но допустим, так надо.

Тогда или пишем честно и некрасиво, подставляя искомый тип как есть
  • STLArray<_HEADER_*>
  • или даже STLArray<struct _HEADER_ *> — чтобы совсем аутентично по-сишному было
  • или красиво (и вполне по-сишному!), используем forward declaration
    typedef struct _HEADER_ tsHeader, *LPsHeader;
    struct _HEADER_ { ..... STLArray<LPsHeader> ..... };
  • Перекуём баги на фичи!
    Re: Ошибка с определением
    От: dilmah США  
    Дата: 10.04.12 20:04
    Оценка:
    ну и еще никто не упомянул, что называть свои структуры зарезервированными именами не есть хорошо
     
    Подождите ...
    Wait...
    Пока на собственное сообщение не было ответов, его можно удалить.