只是想知道函数'IsWow64Process'的使用是否优于为64位操作系统单独编译它。仍需要更改某些地址的偏移量,以便程序实际上保持不变。
答案 0 :(得分:1)
IsWow64Process()
告诉您,您是一个在64位系统上运行的32位应用程序。它不会使您成为64位应用程序。
答案 1 :(得分:1)
IsWow64Process()
仅对32位进程有意义,因为它说明所述进程是否在64位系统上运行。该过程仍然是完全32位的所有后果,例如,它只能加载32位DLL,并且只能使用2 GB的内存。
请注意,在许多情况下,将代码设置为64位并不值得,尤其是当您需要运送32位代码时,尤其是在几乎所有版本的Windows都允许运行32位代码时。有关详细信息,请参阅this answer。
答案 2 :(得分:0)
IsWow64Process
与平台无关。
我通过查看std::ptrdiff_t
:
constexpr /*remove if compiler does not support*/ unsigned long GetProcessBits()
{
return sizeof(std::ptrdiff_t) /*size in bytes*/ * 8U;
}
如果在32位模式下运行,则返回32;如果在64位模式下运行,则返回64.