Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как использовать структуру определенную ниже в коде
|
|||
|---|---|---|---|
|
#18+
IExampleVtbl - структура, которая должна содержать ссылки на разные функции /для простоты я привел только одну функцию/ При компиляции выводится сообщение error C2143: syntax error : missing ';' Не подскажите как правильно оформить код /Visual Studio 2012/ typedef struct { IExampleVtbl *lpVtbl; // <== error C2143: syntax error : missing ';' DWORD count; char Str01[ 80 ]; } IExample; ULONG STDMETHODCALLTYPE AddRef( IExample *this1 ) { ++this1->count; return( this1->count ); } typedef ULONG STDMETHODCALLTYPE AddRefPtr( IExample * ); typedef struct { AddRefPtr *AddRef; } IExampleVtbl; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2013, 22:29 |
|
||
|
Как использовать структуру определенную ниже в коде
|
|||
|---|---|---|---|
|
#18+
Тип должен быть объявлен перед использованием. Компиляция идёт сверху вниз . Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2013, 22:44 |
|
||
|
Как использовать структуру определенную ниже в коде
|
|||
|---|---|---|---|
|
#18+
Если определить typedef struct { AddRefPtr *AddRef; } IExampleVtbl; выше строки typedef struct { IExampleVtbl *lpVtbl; // <== error C2143: syntax error : missing ';' DWORD count; char Str01[ 80 ]; } IExample; тогда будет выдаваться ошибка на строке AddRefPtr *AddRef; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2013, 23:14 |
|
||
|
Как использовать структуру определенную ниже в коде
|
|||
|---|---|---|---|
|
#18+
RTFM Forward Declarations. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2013, 23:23 |
|
||
|
Как использовать структуру определенную ниже в коде
|
|||
|---|---|---|---|
|
#18+
Проблему решил. Код должен быть записан например так: struct IExampleVtbl_; typedef struct { IExampleVtbl_ *lpVtbl; DWORD count; char Str01[ 80 ]; } IExample; typedef HRESULT STDMETHODCALLTYPE QueryInterfacePtr( IExample *, REFIID, void **); typedef ULONG STDMETHODCALLTYPE AddRefPtr( IExample * ); typedef struct IExampleVtbl_ { QueryInterfacePtr *QueryInterface; AddRefPtr *AddRef; } IExampleVtbl; // ------------------------------------------------------- // ULONG STDMETHODCALLTYPE AddRef( IExample *this1 ) { ++this1->count; return( this1->count ); } // ------------------------------------------------------- // HRESULT STDMETHODCALLTYPE QueryInterface( IExample *this1, REFIID vTableGuid, void **ppv ) { *ppv = this1; this1->lpVtbl->AddRef( this1 ); return( NOERROR ); } void ExCOM03( void ) { IExample IExample01; } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2013, 23:28 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=38234427&tid=2020269]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
84ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
2ms |
| others: | 279ms |
| total: | 461ms |

| 0 / 0 |
