Я пытаюсь написать очень простой фильтр ISAPI для устранения другой проблемы. IIS возвращает код ошибки 0x8007007f с Не удалось вызвать GetProcAddress для ISAPI-фильтра «DLL здесь»
Я использую C ++ без MFC в Visual Studio 2012 на Windows 7 с IIS 7.5.
Ниже приведен фрагмент кода. Во время отладки он не вызывает HttpFilterProc. Я вручную добавил файл def в проект, но не знаю, действительно ли он используется.
Есть идеи по этому поводу?
DWORD WINAPI __stdcall HttpFilterProc(HTTP_FILTER_CONTEXT *pfc, DWORD NotificationType, VOID *pvData)
{
switch (NotificationType)
{
case SF_NOTIFY_SEND_RESPONSE :
return DoSendResponse(pfc, (HTTP_FILTER_SEND_RESPONSE *) pvData);
default :
break;
}
return SF_STATUS_REQ_NEXT_NOTIFICATION;
}DWORD DoSendResponse(HTTP_FILTER_CONTEXT * pfc,HTTP_FILTER_SEND_RESPONSE * pResponse)
{
BOOL fServer = TRUE;
DWORD dwServerError;
fServer = pResponse->SetHeader(pfc, "UMFilter:", "Enabled");
if ( !fServer )
{
dwServerError = GetLastError();
pfc->pFilterContext = (LPVOID)(DWORD64)pResponse->HttpStatus;
}
return SF_STATUS_REQ_NEXT_NOTIFICATION;
}
Решением было явное добавление файла определения модуля в свойства проекта -> Компоновщик -> Страница свойств ввода в VS2012.
Линкер не собирал файл, который я добавил.
Других решений пока нет …