1

我正在修复 32 位应用程序的 Windows Vista 64 位的错误,当我尝试使用函数 Wow64DisableWow64FsRedirection(...) 时,编译器会显示“未声明的标识符...”。

我包含了 Windows.h 头文件并将 _WIN32_WINNT 设置为 0x0501。

有任何想法吗?

谢谢。

编辑:我们正在使用 MS Visual Studio 2003

4

3 回答 3

3

您的平台 SDK 文件可能太旧而无法使用该功能。该功能最早出现在 XP 64 位平台 SDK 中。您可以在这里获取最新的 SDK:http: //www.microsoft.com/downloads/details.aspx? FamilyID=e6e1c3df-a74f-4207-8586-711ebe331cdc&displaylang=en

尽管它说它是“适用于 Windows Server® 2008 的 Windows SDK”,但它只是最新的 SDK,它将包含您需要的所有向后兼容的文件。

安装后,根据您的编译器,您可能必须将包含目录指向它。

于 2009-05-22T13:49:57.380 回答
2

你能在头文件中看到这个 API 吗?可能是您使用的 Visual Studio 没有更新头文件,在这种情况下,您需要为 Kernel32.dll 执行 LoadLibrary,然后为所需函数执行 GetProcAddress。

于 2009-05-22T13:34:52.450 回答
1

如果您的应用程序需要在 Windows XP 32 位或 Windows 2000 上运行,您应该按照 Canopus 的建议使用LoadLibrary()and GetProcAddress(),因为直到 Windows XP 64 位Wow64DisableWow64FsRedirection()Wow64RevertWow64FsRedirection()Server 2003 SP1(根据文档)才添加。

于 2009-05-22T15:22:42.623 回答