C++ 在某些函数可能不存在内核32入口点的情况下,如何为多个版本的windows编译

C++ 在某些函数可能不存在内核32入口点的情况下,如何为多个版本的windows编译,c++,windows,kernel32,C++,Windows,Kernel32,标题起初可能不是最具描述性的: 我有一个程序,当软件在Windows7和Windows10 64位平台上运行时,需要调用它 但是,同一应用程序还必须能够在32位Windows XP平台上运行。问题是,Windows XP平台的kernel32.dll没有Wow64重定向函数的入口点,我的应用程序根本无法执行 在应用程序中,我检查操作系统版本,并根据版本分别处理方法调用;换句话说,如果应用程序在32位系统上运行,我从不尝试调用WoW64重定向函数 我无法为32位和64位操作系统编译特定于平台的版本

标题起初可能不是最具描述性的:

我有一个程序,当软件在Windows7和Windows10 64位平台上运行时,需要调用它

但是,同一应用程序还必须能够在32位Windows XP平台上运行。问题是,Windows XP平台的kernel32.dll没有Wow64重定向函数的入口点,我的应用程序根本无法执行

在应用程序中,我检查操作系统版本,并根据版本分别处理方法调用;换句话说,如果应用程序在32位系统上运行,我从不尝试调用WoW64重定向函数

我无法为32位和64位操作系统编译特定于平台的版本


我可以做些什么来支持这两种平台上的应用程序吗?

如果头文件不适用于特定平台,请尝试
hModule=LoadLibrary(“kernel32.dll”)
func=GetProcAddress(hModule,“Wow64DisableWow64FsRedirection”)

修改MS文档中的示例“…如果函数可能不在DLL模块中,例如,如果函数仅在Windows Vista上可用,但应用程序可能在Windows XP上运行…”-