我正在尝试编写一个非常简单的ISAPI过滤器来调试另一个问题。 IIS返回错误代码 0x8007007f 在ISAPI筛选器上调用GetProcAddress“此处的dll”失败
我在使用IIS 7.5的Windows 7上的Visual Studio 2012中使用不带MFC的C ++。
以下是代码片段。在调试时,它似乎不会调用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;
}
答案 0 :(得分:1)
解决方案是明确将模块定义文件添加到项目属性中 - >链接器 - > VS2012中的输入属性页面。
链接器没有拿起我添加的文件。