当我尝试使用函数Wow64DisableWow64FsRedirection(...)时,我正在修复Windows Vista64位32位应用程序的错误。编译器说“未声明的标识符...”。
我包含了Windows.h头文件,并将_WIN32_WINNT设置为0x0501。
有什么想法吗?
谢谢。
编辑:我们使用的是MS Visual Studio 2003
发布于 2009-05-22 13:34:52
你能在头文件中看到这个API吗?可能你正在使用的Visual Studio没有更新的头文件,在这种情况下,你需要为Kernel32.dll执行一个LoadLibrary,然后为所需的函数执行GetProcAddress。
发布于 2009-05-22 13:49:57
您的平台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,并且将包含您需要的所有向后兼容文件。
安装之后,根据编译器的不同,您可能必须将include目录指向它。
发布于 2009-05-22 15:22:43
如果您的应用程序需要在Windows XP 32位或Windows2000上运行,则应该按照Canopus的建议使用LoadLibrary()和GetProcAddress(),因为Wow64DisableWow64FsRedirection()和Wow64RevertWow64FsRedirection()直到Windows XP 64位和Server2003 SP1 (根据documentation)才添加。
https://stackoverflow.com/questions/897809
复制相似问题