【发布时间】:2011-05-05 14:00:18
【问题描述】:
目前我正在从事一个防火墙项目。首先,我从 codeproject http://www.codeproject.com/KB/cpp/firewallpapi.aspx 下载了一个 C++ 中的防火墙项目。所以我从该代码中创建了一个 dll 并从 C# 项目中调用它。它工作完美。但在 Windows 7 中它不起作用。谁能给我任何提示,为什么它不能在 Windows 7 上运行。
谢谢。
【问题讨论】:
目前我正在从事一个防火墙项目。首先,我从 codeproject http://www.codeproject.com/KB/cpp/firewallpapi.aspx 下载了一个 C++ 中的防火墙项目。所以我从该代码中创建了一个 dll 并从 C# 项目中调用它。它工作完美。但在 Windows 7 中它不起作用。谁能给我任何提示,为什么它不能在 Windows 7 上运行。
谢谢。
【问题讨论】:
也许是因为the API has changed:
"通过提供更简单的开发 平台,Windows 过滤平台 旨在取代以前的数据包 过滤技术,如 传输驱动程序接口 (TDI) 过滤器,网络驱动程序接口 规范 (NDIS) 过滤器,以及 Winsock 分层服务提供商 (LSP)。从 Windows Server 2008 开始 和 Windows Vista,防火墙挂钩 并且过滤器挂钩驱动程序不是 可用的;以前的应用程序 使用这些驱动程序应该使用 Windows 改为过滤平台。”
【讨论】:
为 Windows 7(32/ 64 位)编译它。
检查事件查看器是否有任何权限被 Windows 内部拒绝的异常。
【讨论】:
可能需要提升(用户帐户控制),但应用没有适当的清单,因此提升窗口永远不会出现。
尝试右键单击 -> 以管理员身份运行,然后看看它是否有效。
【讨论】:
@Stuart Dunkeld 我在 Codeproject 中找到了解决方案。 http://www.codeproject.com/KB/IP/PacketFilter.aspx
【讨论】: