0

我正在尝试编写一个非常简单的 ISAPI 过滤器来调试另一个问题。IIS 返回错误代码0x8007007f在 ISAPI 过滤器“此处的 dll”上调用 GetProcAddress 失败

我在带有 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;
}
4

1 回答 1

1

解决方案是在VS2012的项目属性->链接器->输入属性页面中显式添加模块定义文件。

链接器没有拾取我添加的文件。

于 2013-10-09T21:32:36.143 回答