Тип параметра Void вызывает ошибку отсутствия типа - PullRequest
1 голос
/ 10 января 2012

Вот прототип:

void RecvProxy_ToggleSights( const CRecvProxyData* pData, void* pStruct, void* pOut );

А затем сама функция:

void RecvProxy_ToggleSights( const CRecvProxyData* pData, void* pStruct, void* pOut ){

CBaseCombatWeapon *pWeapon = (CBaseCombatWeapon*)pStruct;
if( pData->m_Value.m_Int )
    pWeapon->EnableIronsights();
else
    pWeapon->DisableIronsights();}

И затем сообщение об ошибке, этот код, как прототип, так и определение, генерирует:

Ошибка 19 Ошибка C4430: отсутствует указатель типа - предполагается использование int.Примечание. C ++ не поддерживает default-int f: \ Mods \ CI Testbed \ src \ game \ shared \ basecombatweapon_shared.cpp 47

Как устранить эту ошибку?

1 Ответ

1 голос
/ 10 января 2012

Определен ли тип 'CRecvProxyData'? В остальном ваш код корректен (при условии, что все пользовательские типы определены правильно), хотя я предлагаю вам поместить открывающие и закрывающие фигурные скобки для определения функции на их собственных строках.

Кроме того, я не согласен с void *: это немного похмелье от C, вы должны стремиться исключить его из исходного кода, где это необходимо. Не могли бы вы вместо этого использовать полиморфизм или шаблоны?

Вероятно, вы пропустили #include или сделали ошибку в ваших включенных охранниках. Если бы вы могли опубликовать содержимое файла, в котором определено «CRecvProxyData», а также код, который вы опубликовали, это было бы очень полезно. Иначе я могу только строить догадки:).

...