У меня проблема с отправкой декларации на работу (на самом деле я не уверен, что она должна работать так, как я предполагаю).Проблема с прямой декларацией
У меня есть файл CPP следующим образом:
int DialogModeless::Create(int dialogID, Presenter* pPresenter)
{
Ptrs* pPtrs = new Ptrs;
pPtrs->pPresenter = pPresenter;
pPtrs->pWnd = _derived;
HINSTANCE hInstance = ::GetModuleHandle(NULL);
_hWnd = ::CreateDialogParam(hInstance, MAKEINTRESOURCE(dialogID), NULL, &Presenter::StatDlgProc,
reinterpret_cast<LPARAM>(pPtrs));
return 0;
}
Теперь путь у меня есть это то, что Presenter :: StatDlgProc должны быть объявлены только в этой точке, так как я только принимая его адрес. Это, кажется, не так, как я получаю следующее сообщение об ошибке из Visual Studio 2008:
ошибка C2027: использование неопределенного типа «Presenter»
я должен включить Presenter.h для кода для компиляции ,
Может кто-нибудь объяснить это мне?
Я попытался направить объявить, как это:
class Presenter;
BOOL CALLBACK Presenter::StatDlgProc(HWND, UINT, WPARAM, LPARAM);
Итак, как вы переходите-декларируете 'StatDlgProc'? Пожалуйста, покажите код. –